Biarkan CMD tetap terbuka setelah file BAT dijalankan


169

Saya memiliki file kelelawar seperti ini:

ipconfig

Itu akan mencetak info IP ke layar, tetapi sebelum pengguna dapat membaca info itu CMD menutup sendiri.

Saya percaya bahwa CMD menganggap skrip telah selesai, jadi ditutup.

Bagaimana cara menjaga CMD terbuka setelah skrip selesai?



4
@RobKielty itu pertanyaan yang sama baik-baik saja - tetapi di sini kita memiliki jawaban baru (yang lebih baik IMHO)
alfasin


@alfasin Apakah itu tidak sama dengan jawaban Rutger Nijlunsing?
Rob Kielty

@RobKielty nggak, jawaban saya tidak sama karena tidak menggunakan pauseyang merupakan solusi yang bagus (dan itulah sebabnya saya mengubah jawaban ini) tetapi bukan jawaban yang benar-benar menyelesaikan masalah karena setelah pengguna menyentuh Enteratau Spacejendela akan menutup. ..
alfasin

Jawaban:


163

Bergantung pada bagaimana Anda menjalankan perintah, Anda dapat menempatkan /ksetelah cmduntuk menjaga jendela terbuka.

cmd /k my_script.bat

Cukup menambahkan cmd /kke akhir file batch Anda akan bekerja juga. Penghargaan untuk Luigi D'Amico yang memposting tentang ini di komentar di bawah.


14
Setelah semua skrip Anda di file bat Anda - put -> cmd / k
Luigi D'Amico

3
Berhati-hatilah bahwa jika program Anda mengandung kesalahan sintaksis, jendela akan tetap menutup jika Anda menjalankannya melalui klik dua kali dan letakkan cmd /kdi bagian akhir.
Tobias Feil

Ini tidak menjelaskan penutupan windows cmd jika pengguna mengklik ganda file tersebut.
K - Keracunan dalam SO tumbuh.

238

Masukkan pausedi akhir file .BAT Anda.


7
Ini persis apa yang saya cari, karena saya menjalankan file bat saat startup, bukan melalui perintah CMD. +1
Hawkeye

3
Jika Anda masih ingin berinteraksi dengan file bat setelah eksekusi Anda, ganti PAUSE dengan hanya cmd / k - maka setelah skrip Anda berjalan, Anda masih dapat menjalankan perintah manual setelah itu dalam konteks yang sama
Luigi D'Amico

Aku tak tahan melihat bahwa ini bukan "solusi" komentar untuk pertanyaan ini
Newhouse

57

Tambahkan saja @pausedi akhir.

Contoh:

@echo off
ipconfig
@pause

Atau Anda juga dapat menggunakan:

cmd /k ipconfig

5
apa yang dilakukan simbol @? Apakah ada perbedaan antara @ jeda dan jeda?
demonicdaron

3
@demonicdaron Jawaban menjelaskan simbol @: stackoverflow.com/a/21077142/2258
Richard Morgan

Tetapi dalam hal ini, seharusnya tidak ada bedanya.
Florian Leitgeb

Perbedaan antara @pausedan pausedapat dilihat secara visual dalam jawaban ini: stackoverflow.com/questions/17957076#60053224
ZygD

7

Menambahkan pause(Windows 7) ke akhir tidak bekerja untuk saya
tetapi menambahkan cmd /kdi depan perintah saya berhasil.

Contoh:

cmd /k gradlew cleanEclipse

7

Ketika file .bat dimulai bukan dari dalam baris perintah (mis. Mengklik dua kali).

echo The echoed text
@pause

at_pause

echo The echoed text
pause

berhenti sebentar

echo The echoed text
cmd /k

cmd k

echo The echoed text & pause

and_pause


3

start cmd /kmelakukan keajaiban untukku. Saya benar-benar menggunakannya untuk menyiapkan aplikasi cordova phonegap menjalankan perintah, menunjukkan hasilnya dan menunggu pengguna untuk menutupnya. Di bawah ini adalah contoh sederhana

start cmd /k echo Hello, World!

Apa yang saya gunakan dalam kasus saya

start cmd /k cordova prepare

Memperbarui

Anda bahkan dapat memiliki judul untuk ini dengan menggunakan

start "My Title" echo Hello, World!


1

Jika Anda memulai skrip dalam baris perintah, lalu tambahkan exit /buntuk menjaga CMD tetap terbuka


Praktis tidak memecahkan pertanyaan sebagai memodifikasi ipconfigdan file batch bawaan lainnya adalah ide yang sangat buruk .
robinCTS

1

Di Windows tambahkan '& Jeda' di akhir perintah Anda di file.


1

Saya juga bingung mengapa kita menambahkan cmddi awal dan saya bertanya-tanya apakah saya harus membuka command prompt terlebih dahulu. Yang perlu Anda lakukan adalah mengetikkan perintah lengkap bersama cmd /k. Misalnya anggap nama file batch Anda adalah "my_command.bat" yang menjalankan perintah javac my_code.javamaka kode dalam file batch Anda harus:

cmd /k javac my_code.java

Jadi pada dasarnya tidak perlu membuka command prompt di folder saat ini dan ketik perintah di atas tetapi Anda dapat menyimpan kode ini secara langsung dalam file batch Anda dan jalankan secara langsung.


0
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java

cmd cd C:\xxx\yourbat.bat

perintah kedua membuat jendela cmd Anda tidak ditutup. Yang penting Anda masih bisa memasukkan perintah baru


0

Sebagai sidenote, ini juga berfungsi saat menjalankan perintah langsung dari bilah pencarian di windows.

mis langsung berjalan ipconfigakan langsung menutup jendela cmd setelah perintah telah keluar.

masukkan deskripsi gambar di sini

Menggunakan cmd \k <command>tidak akan - yang saya coba lakukan ketika saya menemukan jawaban ini.

masukkan deskripsi gambar di sini

Ini memiliki keuntungan tambahan untuk selalu mengenali perintah yang Anda coba jalankan. Misalnya menjalankan echo hello worlddari searchbar tidak akan berfungsi karena itu bukan perintah, namun cmd \k echo hello worldberfungsi dengan baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.