Setara dengan ^ D (dalam bash) untuk cmd.exe?

27

Apakah ada stroke-key yang setara untuk keluar dari command prompt pada Windows (diluncurkan melalui Start-> Run: cmd) ke bash standby Ctrl- duntuk mencegah keharusan mengetikkan exituntuk meninggalkan shell?

warren
sumber

Jawaban:

19

Nomor CtrlDpada * nix menghasilkan EOF, yang berbagai kerang menafsirkan sebagai berjalan exit. Setara dengan EOF pada Windows CtrlZ, tetapi cmd.exe tidak menafsirkan ini secara khusus ketika diketik di prompt.

Ignacio Vazquez-Abrams
sumber
3
Pada kebanyakan shell modern, terminal tidak dalam mode input kanonik ketika shell menerima input secara interaktif, dan Ctrl+Dpada kenyataannya hanya karakter biasa dan bukan karakter khusus EOF. Shell mengikat Ctrl+Dke GNU Readline atau tindakan ZLE yang keluar (tetapi hanya jika buffer pengeditan baris kosong) sehingga sebagian besar perilaku hasil yang sama. Tapi Ctrl+Dini tidak EOF dengan kerang modern, hanya sebuah karakter kontrol biasa. Perilaku ketika buffer pengeditan tidak kosong sangat berbeda dengan apa yang terjadi dengan karakter khusus EOF.
JdeBP
3
Memang, Windows NT terdekat setara dengan apa bashet al. yang sebenarnya melakukan adalah TCC / LE autoexecuting Keyboard alias, seperti yang satu ini , di mana perintah interpreter (tidak konsol) mengakui kombinasi keystroke biasa ALT+F4 selama pengeditan baris dan mengeksekusi built-in exitperintah dalam respon.
JdeBP
@ JdeBP Going off ini sebagai titik awal, saya baru saja menguji ini dengan bash 4.4.12 dan stty -akembali icanon(yaitu tidak -icanon). Apakah komentar Anda With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputbenar secara statistik saat ini?
levant pied
10

Alt- Space. Lalu C,.

Ya, ini sedikit lebih lambat dari Ctrl- D. Tapi ini adalah jawaban untuk apa yang Anda minta: urutan langkah kunci setara bawaan yang memungkinkan Anda keluar dari prompt tanpa perlu mengetikkan exitperintah. Tidak diperlukan perangkat lunak pihak ketiga.

Ini mungkin tidak bekerja sama persis dengan bash: bash hanya akan keluar pada baris perintah kosong. Di Windows, ini bisa menutup jendela, bahkan jika Anda sudah mengetik perintah parsial di atasnya.

TOOGAM
sumber
: D: D: D: D: D: D
Fatih
3

Anda dapat menggunakan DOSKEY untuk membuat makro di CMD.exe.

Untuk membuat tipe makro:

DOSKEY [macroname]=[command(s)]

Dengan begitu Anda dapat mengikat kunci ke perintah lain.

Contoh:

DOSKEY e=exit

akan mengikat eke exitperintah, jadi ketika Anda masukan sebuah eprompt akan seperti Anda masukan sebuahexit

Saya tidak yakin apakah Anda dapat menggunakan CTRL- $nkombinasi sebagai makro

Nate Koppenhaver
sumber
Sebagian besar karakter kontrol berfungsi dengan baik (kecuali yang sudah ditangani oleh konsol, tentu saja). Tetapi cmdhanya menafsirkannya sebagai perintah normal, menunggu untuk Enterditekan, sehingga tidak ada keuntungan dari aliasing Ctrl-Z versus adil eatau x.
grawity
3

Memperbaiki pendekatan autohotkey. (Saya tidak bisa menambahkan komentar.)

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

Sekarang ada proyek open source yang disebut clink di http://code.google.com/p/clink/ (edit: pindah ke http://mridgers.github.io/clink/ ) - ini membawa fungsionalitas Unline readline ke prompt perintah Windows.

Ini mendukung sebagian besar fungsionalitas termasuk pengeditan baris perintah, pencarian riwayat, penyelesaian tab bersama dengan skrip penyelesaian, dll. Layak untuk dicoba, membuat cmd menyedot lebih sedikit. ;]

Herbo
sumber
0

Anda bisa mendapatkan efek yang sama dengan cuplikan Autohotkey ini :

; 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
sumber
Tampaknya tidak berhasil, ada petunjuk mengapa?
Avindra Goolcharan
@AvindraGoolcharan: Saya telah diberitahu, tergantung pada bagaimana Anda memulai Command Prompt, judul jendela bisa berbeda dari apa yang saya gunakan dalam skrip ini. Baris kedua mungkin perlu penyesuaian tergantung pada preferensi Anda.
Der Hochstapler