Cmd.exe için ^ D (bash olarak) değerine eşit mi?


27

Bir bash bekleme: (cmd Başlat-> Çalıştır yoluyla başlatıldı) Windows üzerinde bir komut istemi çıkmadan için eşdeğer anahtar inme var mı Ctrl- dyazmanız gerek önlemek için exitkabuk bırakmak?

Yanıtlar:


19

No CtrlDon * nix, çeşitli mermilerin çalışır durumda yorumladığı bir EOF üretir exit. Windows'taki EOF'ye eşdeğerdir CtrlZ, ancak istemde yazıldığında cmd.exe bunu özel olarak yorumlamaz.


3
Kabuk etkileşimli giriş kabul edilebilir olduğunda en modern kabukları ile terminal kurallı girdi kipinde değildir ve Ctrl+Daslında sadece sıradan bir karakter ve bir değil bir EOF özel karakter. Kabuklar çıkan Ctrl+Dbir GNU Readline veya ZLE eylemine bağlanır (ancak yalnızca satır düzenleme tamponu boşsa), böylece davranış çoğunlukla aynı sonuçtur. Ama Ctrl+Dolduğu değil , modern kabukları, sadece sıradan bir kontrol karakteri ile EOF. Düzenleme arabelleği boş olmadığında davranış, EOF özel karakterinde olanlardan belirgin şekilde farklıdır.
JdeBP

3
Nitekim, en yakın Windows NT ve benzeri eşdeğer bash. olan aslında yapıyor ise TTK / LE gibi autoexecuting klavye takma, bu bir , komut yorumlayıcı (değil konsol) tanır sıradan tuş kombinasyonunu ALT+F4 hat düzenleme sırasında ve yürütür yerleşik exitcevaben komutu.
JdeBP

@ JdeBP Bu başlangıç ​​noktası olarak, ben sadece bunu bash 4.4.12 ile test ettim ve stty -ageri döndü icanon(yani değil -icanon). Yorumunuz With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputbu noktada gerçekten istatistiksel olarak doğru mu?
levant

10

Alt- Space. Öyleyse C.

Evet, biraz daha yavaş bulunuyor Ctrl- D. Ancak bu tam olarak ne istediğinizi cevabıdır: exitKomutu yazmaya gerek kalmadan istemden çıkmanızı sağlayan yerleşik eşdeğer tuş vuruş dizisi . Üçüncü taraf yazılımı gerekmez.

Bu kesinlikle bash ile aynı şekilde çalışmayabilir: bash yalnızca boş bir komut satırında oturumu kapatır. Windows'ta, üzerine kısmi bir komut yazmış olsanız bile, bu pencereyi kapatabilir.


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

3

CMD.exe'de makro oluşturmak için DOSKEY kullanabilirsiniz .

Makro türü oluşturmak için:

DOSKEY [macroname]=[command(s)]

Bu şekilde bir anahtarı başka bir komuta bağlayabilirsiniz.

Örnek:

DOSKEY e=exit

bağlayacağı eiçin exitkomuta, bu nedenle giriş bir zaman eistemi için bunu input gibi olurduexit

Kullanabildiğinizden emin değilim CTRL- $nkombinasyon olsa da


Kontrol karakterlerinin çoğu çalışır (zaten konsol tarafından ele alınanlar hariç). Ancak basılması cmdiçin bekleyen, sadece normal komutlar olarak yorumlanır Enter, bu nedenle Ctrl-Z'nin sadece eya da yerine diğer adı ile örtüşmesinin avantajı yoktur x.
yer

3

Sabit otohotkey yaklaşımı. (Yorum ekleyemiyorum.)

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


0

Bu AutoHotKey pasajıyla aynı efekti elde edebilirsiniz :

; 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

İşe yaramadı mı, nedense ipucu var mı?
Avindra Goolcharan

@AvindraGoolcharan: Komut İstemi'ni nasıl başlattığınıza bağlı olarak pencere başlığının bu komut dosyasında kullandıklarımdan farklı olabileceği söylendi. İkinci satırın tercihinize bağlı olarak ayarlanması gerekebilir.
Der Hochstapler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.