¿Equivalente a ^ D (en bash) para cmd.exe?

27

¿Hay una pulsación de tecla equivalente para salir de un símbolo del sistema en Windows (lanzado a través de Inicio-> Ejecutar: cmd) al modo de espera bash de Ctrl- dpara evitar la necesidad de escribir exitpara abandonar el shell?

madriguera
fuente

Respuestas:

19

No. CtrlDon * nix genera un EOF, que varios shells interpretan como en ejecución exit. El equivalente para EOF en Windows es CtrlZ, pero cmd.exe no interpreta esto especialmente cuando se escribe en el indicador.

Ignacio Vazquez-Abrams
fuente
3
Con la mayoría de los shells modernos, el terminal no está en modo de entrada canónica cuando el shell está aceptando interactivamente la entrada, y Ctrl+Dde hecho es solo un carácter ordinario y no un carácter especial EOF. Los shells se unen Ctrl+Da una acción GNU Readline o ZLE que existe (pero solo si el búfer de edición de línea está vacío), por lo que el comportamiento es principalmente el mismo resultado. Pero noCtrl+D es EOF con proyectiles modernos, solo un personaje de control ordinario. El comportamiento cuando el búfer de edición no está vacío es notablemente diferente de lo que sucede con un carácter especial EOF.
JdeBP
3
De hecho, el Windows NT más cercano equivale a lo que bashet al. en realidad lo que está haciendo es un alias de teclado de ejecución automática TCC / LE , como este , donde el intérprete de comandos (no la consola) reconoce la combinación de teclas normales ALT+F4 durante la edición de línea y ejecuta el exitcomando incorporado en respuesta.
JdeBP
@JdeBP Partiendo de esto como punto de partida, acabo de probar esto con bash 4.4.12 y stty -adevuelve icanon(es decir, no -icanon). ¿Su comentario es With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputrealmente estadísticamente correcto en este momento?
Levant Pied
10

Alt- Space. A continuación, C.

Sí, es un poco más lento que Ctrl- D. Pero esta es la respuesta a exactamente lo que está pidiendo: la secuencia de pulsaciones de teclas equivalente incorporada que le permite salir de la solicitud sin necesidad de escribir el exitcomando. No se necesita software de terceros.

Esto puede no funcionar absolutamente idéntico a bash: bash solo cerrará sesión en una línea de comando vacía. En Windows, esto puede cerrar la ventana, incluso si ya ha escrito un comando parcial en ella.

TOOGAM
fuente
: D: D: D: D: D: D
Fatih
3

Puede usar DOSKEY para crear macros en CMD.exe.

Para crear un tipo de macro:

DOSKEY [macroname]=[command(s)]

De esa manera puede vincular una clave a otro comando.

Ejemplo:

DOSKEY e=exit

se uniría eal exitcomando, por lo que cuando ingrese un emensaje en el indicador, sería como ingresar unexit

No estoy seguro de si puedes usar CTRL, $naunque combinaciones como macros

Nate Koppenhaver
fuente
La mayoría de los caracteres de control funcionan bien (excepto los que ya maneja la consola, por supuesto). Pero cmdsolo los interpreta como comandos normales, a la espera de Enterser presionados, por lo que no hay ninguna ventaja de alias Ctrl-Z versus just eo x.
Grawity
3

Se corrigió el enfoque de autohotkey. (No puedo agregar un comentario).

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

Ahora hay un proyecto de código abierto llamado clink en http://code.google.com/p/clink/ (editar: se trasladó a http://mridgers.github.io/clink/ ): trae la funcionalidad de línea de lectura de Unix a El símbolo del sistema de Windows.

Admite la mayoría de las funciones, incluida la edición de la línea de comandos, la búsqueda del historial, la finalización de pestañas junto con los scripts de finalización, etc. Vale la pena echarle un vistazo, hace que cmd sea mucho menos. ;]

HerbCSO
fuente
0

Puede obtener el mismo efecto con este fragmento de 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
Der Hochstapler
fuente
No parece funcionar, ¿alguna pista de por qué?
Avindra Goolcharan
@AvindraGoolcharan: Me han dicho, dependiendo de cómo inicie el símbolo del sistema, el título de la ventana puede ser diferente de lo que usé en este script. La segunda línea puede necesitar ajustes según su preferencia.
Der Hochstapler