cmd.exeの^ D(bash内)と同等ですか?


27

bashのスタンバイへ:(CMDスタート- >ファイル名を指定して実行から起動)は、Windowsのコマンドプロンプトを終了するための同等のキーストロークがありますCtrl- dと入力する必要がないようにするexitシェルを残して?

回答:


19

いいえCtrlD。* nixではEOFが生成され、さまざまなシェルが実行中と解釈しますexit。WindowsでのEOFに相当するのはですがCtrlZ、cmd.exeはプロンプトで入力されたときにこれを特別に解釈しません。


3
最近のほとんどのシェルでは、シェルが対話的に入力を受け入れている場合、ターミナルは標準入力モードではなくCtrl+D、実際には単なる文字であり、EOF特殊文字ではありません。シェルはCtrl+D、終了するGNU ReadlineまたはZLEアクションにバインドしますが(行編集バッファーが空の場合のみ)、動作はほとんど同じ結果になります。しかし、Ctrl+Dあるではない、現代のシェル、普通の制御文字とEOF。編集バッファーが空でない場合の動作は、EOF特殊文字で発生する動作とは著しく異なります。
JdeBP

3
実際、bash他のものと同等の最も近いWindows NT 。されている実際の実行である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
ファティ

3

DOSKEYを使用して、CMD.exeでマクロを作成できます。

マクロタイプを作成するには:

DOSKEY [macroname]=[command(s)]

これにより、キーを別のコマンドにバインドできます。

例:

DOSKEY e=exit

結合するであろうeexitそのとき入力AN、コマンドeプロンプトに、それはあなたのような入力ANだろうexit

私はあなたが使用できるかどうかわからないCTRL- $nマクロなどの組み合わせかかわらず


ほとんどの制御文字は正常に動作します(もちろん、コンソールで既に処理されているものを除きます)。ただしcmd、通常のコマンドとして解釈Enterされ、押されるのを待っているため、Ctrl eまたはZを単にor にエイリアスする利点はありませんx
悲しみ

3

オートホットキーのアプローチを修正しました。(コメントを追加できません。)

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

1

で、チャリンという音と呼ばれるオープンソースプロジェクト用意されましたhttp://code.google.com/p/clink/(編集:それはに移動http://mridgers.github.io/clink/) -それがUnixのreadlineの機能をもたらしますWindowsコマンドプロンプト。

コマンドライン編集、履歴検索、完了スクリプトなどのタブ補完など、ほとんどの機能をサポートしています。チェックアウトする価値があり、cmdの負荷を大幅に軽減します。;]


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

うまくいかないようですが、何か手がかりはありますか?
アビンドラグールチャラン

@AvindraGoolcharan:コマンドプロンプトの起動方法によっては、ウィンドウのタイトルがこのスクリプトで使用したものと異なる場合があります。2行目は、好みに応じて調整が必要になる場合があります。
デアホッホシュプラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.