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.