等价于cmd.exe的^ D(以bash表示)?


27

是否有等效的击键,可用于退出Windows上的命令提示符(通过Start-> Run:cmd启动)到bash备用服务器Ctrl- d以防止需要键入exit以离开外壳?

Answers:


19

CtrlD* nix上的编号会生成一个EOF,各种shell会将其解释为running exit。Windows上EOF的等效项是CtrlZ,但在提示符下键入cmd.exe不会对此进行特殊解释。


3
对于大多数现代外壳,当外壳以交互方式接受输入时,终端不处于规范输入模式,并且Ctrl+D实际上只是普通字符而不是 EOF特殊字符。Shell绑定Ctrl+D到退出的GNU Readline或ZLE操作(但仅当行编辑缓冲区为空时),因此行为几乎是相同的结果。但是,Ctrl+D不是 EOF与现代炮弹,只是一个普通的控制字符。编辑缓冲区不为空时的行为与EOF特殊字符的行为明显不同。
JdeBP

3
实际上,最接近的Windows NT等价于Windows XP bash。被实际做的是一个TCC / LE autoexecuting键盘别名,如这一个,其中所述命令解释(而不是控制台)识别普通按键组合 ALT+F4行编辑时,并执行该内置exit响应命令。
JdeBP

@JdeBP 以此为起点,我刚刚使用bash 4.4.12进行了测试,然后stty -a返回icanon(即不是-icanon)。您的评论目前With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting input在统计上是否正确?
黎凡特

10

Alt- Space。然后,C

是的,它比Ctrl- 慢一点D。但这正是您所需要的答案:内置的等效击键序列,使您无需键入exit命令即可退出提示。无需第三方软件。

这可能与bash完全不同:bash仅在空命令行中注销。在Windows中,即使您已经在窗口上键入了部分命令,也可以关闭窗口。


:D:D:D:D:D:D:D
法提赫

3

您可以使用DOSKEY在CMD.exe中创建宏。

要创建宏类型:

DOSKEY [macroname]=[command(s)]

这样,您可以将键绑定到另一个命令。

例:

DOSKEY e=exit

会绑定eexit命令,所以当您e在提示符下输入an时,就像输入一个exit

我不确定是否可以使用CTRL- $n组合作为宏


大多数控制字符都可以正常工作(当然,控制台已经处理过的字符除外)。但是cmd只是将它们解释为普通命令,等待Enter按下,因此与e或相比,别名Ctrl-Z没有优势x
grawity 2012年

3

修复了自动热键方法。(我无法添加评论。)

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


0

您可以通过以下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

似乎不起作用,为什么有任何线索?
Avindra Goolcharan

@AvindraGoolcharan:有人告诉我,根据您如何启动命令提示符,窗口标题可能与我在此脚本中使用的不同。第二行可能需要根据您的喜好进行调整。
Der Hochstapler,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.