Equivalente a ^ D (in bash) per cmd.exe?


27

Esiste un colpo di tasto equivalente per uscire da un prompt dei comandi su Windows (avviato tramite Start-> Esegui: cmd) nel bash standby di Ctrl- dper evitare la necessità di digitare exitper lasciare la shell?

Risposte:


19

No. CtrlDon * nix genera un EOF, che varie shell interpretano come in esecuzione exit. L'equivalente per EOF su Windows è CtrlZ, ma cmd.exe non lo interpreta specialmente quando viene digitato al prompt.


3
Con la maggior parte delle shell moderne, il terminale non è in modalità di input canonica quando la shell accetta in modo interattivo input, ed Ctrl+Dè in realtà solo un carattere ordinario e non un carattere speciale EOF. Le conchiglie si legano Ctrl+Da un'azione GNU Readline o ZLE che esce (ma solo se il buffer di modifica della linea è vuoto), quindi il comportamento è principalmente lo stesso risultato. Ma nonCtrl+D è EOF con conchiglie moderne, solo un normale carattere di controllo. Il comportamento quando il buffer di modifica non è vuoto è notevolmente diverso da quello che succede con un carattere speciale EOF.
JdeBP,

3
In effetti, l'equivalente di Windows NT più vicino a quello bashet al. in realtà sta facendo un alias della tastiera autoeseguente TCC / LE , come questo , in cui l'interprete dei comandi (non la console) riconosce la normale combinazione di tasti ALT+F4 durante la modifica della linea ed esegue il exitcomando integrato in risposta.
JdeBP,

@JdeBP Partendo da questo come punto di partenza, ho appena provato questo con bash 4.4.12 e stty -aritorni icanon(cioè no -icanon). Il tuo commento With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputè statisticamente corretto in questo momento?
levant pied

10

Alt- Space. Poi, C.

Sì, è un po 'più lento di Ctrl- D. Ma questa è la risposta esattamente a ciò che stai chiedendo: la sequenza di tasti equivalente equivalente integrata che ti consente di uscire dal prompt senza dover digitare il exitcomando. Nessun software di terze parti necessario.

Questo potrebbe non funzionare in modo assolutamente identico a bash: bash si disconnetterà solo su una riga di comando vuota. In Windows, questo può chiudere la finestra, anche se hai già digitato un comando parziale su di essa.


: D: D: D: D: D: D
Fatih

3

È possibile utilizzare DOSKEY per creare macro in CMD.exe.

Per creare un tipo di macro:

DOSKEY [macroname]=[command(s)]

In questo modo puoi associare una chiave a un altro comando.

Esempio:

DOSKEY e=exit

si legherebbe eal exitcomando, quindi quando si immette un eal prompt sarebbe come se si immettesse unexit

Non sono sicuro se puoi usare CTRL- $ncombinazioni come macro però


La maggior parte dei personaggi di controllo funzionano bene (tranne quelli già gestiti dalla console, ovviamente). Ma cmdli interpreta semplicemente come normali comandi, in attesa Enterdi essere premuti, quindi non vi è alcun vantaggio di aliasing Ctrl-Z rispetto a solo eo x.
gravità

3

Risolto il problema con l'autohotkey. (Non riesco ad aggiungere un commento.)

#IfWinActive, ahk_class ConsoleWindowClass
  ^d::
    ; First send ESC, in case we're in select mode.
    Send {Esc}{Esc}exit{Enter}
#IfWinActive

1

Ora esiste un progetto open source chiamato clink su http://code.google.com/p/clink/ (modifica: è passato a http://mridgers.github.io/clink/ ) - porta la funzionalità readline di Unix su il prompt dei comandi di Windows.

Supporta la maggior parte delle funzionalità tra cui la modifica della riga di comando, la ricerca della cronologia, il completamento delle schede insieme agli script di completamento, ecc. ;]


0

Puoi ottenere lo stesso effetto con questo frammento di AutoHotKey :

; Close Command Prompt when pressing Ctrl+D
#IfWinActive, Command Prompt$
  ^d::
    ; First send ESC, in case we're in select mode.
    Send {Esc}{Esc}exit{Enter}
#IfWinActive

Non sembra funzionare, qualche indizio sul perché?
Avindra Goolcharan,

@AvindraGoolcharan: mi è stato detto, a seconda di come si avvia il prompt dei comandi, il titolo della finestra può essere diverso da quello che ho usato in questo script. La seconda riga potrebbe richiedere aggiustamenti a seconda delle tue preferenze.
Der Hochstapler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.