Perintah apa yang bisa saya letakkan di akhir file batch untuk mencegah penutupan otomatis konsol setelah eksekusi file?
Perintah apa yang bisa saya letakkan di akhir file batch untuk mencegah penutupan otomatis konsol setelah eksekusi file?
Jawaban:
Dalam file batch Windows / DOS:
pause
Ini mencetak "Press any key to continue . . . "
pesan yang bagus
Atau, jika Anda tidak ingin "Press any key to continue . . ."
pesannya, lakukan ini sebagai gantinya:
pause >nul
Tergantung pada pertanyaan yang tepat!
Biasanya pause
melakukan pekerjaan dalam file .bat .
Jika Anda ingin cmd.exe tidak menutup agar tetap bisa mengetik, gunakan cmd /k
perintah di akhir file.
cmd /k
sebelum perintah Anda sebagai gantinya. & cmd /k
tidak akan bekerja
Jika Anda ingin cmd.exe tidak ditutup, dan dapat terus mengetik, gunakan
cmd /k
Hanya merasakan kebutuhan untuk mengklarifikasi apa yang /k
dilakukannya (dari situs web windows):
/k
: Melakukan perintah yang ditentukan oleh string dan melanjutkan.
Jadi cmd /k
tanpa menindaklanjuti perintah di akhir file bat hanya akan cmd.exe
membuka jendela untuk digunakan lebih lanjut.
Di sisi lain pause
pada akhir file batch hanya akan menghentikan proses dan mengakhiri cmd.exe
pada tombol tekan pertama
Cara di bawah ini untuk memiliki perintah dalam file batch akan membuka jendela command prompt baru dan windows baru tidak akan keluar secara otomatis.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
Jika Anda menggunakan Maven dan Anda ingin melewatkan pengetikan dan mencegah konsol dari dekat untuk melihat hasil yang Anda butuhkan untuk menggunakan CALL
perintah dalam skrip, selain hanya 'mvn clean install'.
Seperti ini akan menutup konsol
ECHO This is the wrong exemple
mvn clean install
pause
Seperti ini, konsol akan tetap terbuka
ECHO This is the right exemple
CALL mvn clean install
pause
Jika Anda tidak menggunakan CALL
perintah tidak satu pun dari contoh masa lalu akan bekerja.
call <myCommand>
menyelesaikan masalah ini: Prompt saya berhenti ditutup setelah eksekusi pertama
Tambahkan cmd.exe
sebagai baris baru di bawah kode yang ingin Anda jalankan:
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
cara saya adalah menulis kumpulan aktual (mengatakan "foo.bat") untuk menyelesaikan pekerjaan; lalu buat "start.bat" lainnya:
@echo off
cmd /k foo.bat
Saya menemukan ini sangat berguna ketika saya mengatur variabel lingkungan satu kali.
cmd /k
(tanpa perintah) di akhir foo.bat
file dan menjalankannya. Anda tidak perlu start.bat
file terpisah .
Panggil cmd
di akhir file batch.
selain itu pause
.
set /p=
dapat digunakan. Ini akan mengharapkan input pengguna dan akan melepaskan aliran ketika masuk ditekan.
atau
runas /user:# "" >nul 2>&1
yang akan melakukan hal yang sama kecuali tidak ada dari input pengguna yang akan ditampilkan atau akan tetap dalam sejarah perintah.
Kemungkinan 1: Cukup buat 2 file .bat dan tulis menjadi yang pertama:
start <filename> // name of 2nd batch file
exit
File batch 2 adalah file yang tidak akan ditutup pada akhirnya. Jadi sekarang ketika Anda membuka batch nr.1. Ini akan memulai 2nd dan cloe itu sendiri. Ketika ke-2 selesai, itu tidak akan menutup sepenuhnya (selama Anda tidak akan menempatkan keluar di akhir)
Kemungkinan 2: File batch 1:
call <filename>
cls
echo End of file
pause
<any code you want>
Ketika file ke-2 berakhir maka file 1 akan dilanjutkan lagi dan output sisanya. Dengan itu Anda bahkan dapat membuat penangan kesalahan. Jika nr.1 macet, maka masuk ke nr.2 dan menampilkannya
Peretasan kecil ini meminta pengguna untuk memasukkan kunci dan menyimpannya ke dalam variabel% exitkey% (variabel ini bisa disebut apa pun yang Anda suka).
set /p exitkey= "Press any key to continue..."
NB: spasi setelah '=' sangat penting
Saya tahu saya terlambat tetapi cara pilihan saya adalah:
:programend
pause>nul
GOTO programend
Dengan cara ini pengguna tidak dapat keluar menggunakan enter.
Ada dua cara untuk melakukannya tergantung pada use case
1) Jika Anda ingin Windows cmd prompt tetap terbuka sehingga Anda dapat melihat hasil eksekusi dan menutupnya setelah itu; menggunakan
pause
2) jika Anda ingin Windows cmd prompt tetap terbuka dan memungkinkan Anda untuk menjalankan beberapa kata penutup perintah; menggunakan
cmd
Mudah, tambahkan cmd ke baris kelelawar terakhir Anda, TETAPI! jika Anda mengatur ulang atau menghapus jalur sistem Anda, Anda harus memulai cmd Anda dengan path lengkap, seperti:
%windir%\system32\cmd.exe
Misalnya, saya punya file bat untuk mereset jdk ke versi lama seperti ini:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
karena saya mengatur ulang path sistem, saya harus menjalankan cmd dengan path lengkap, atau sistem tidak dapat menemukan cmd.exe, itu akan gagal untuk menjalankan cmd, dan cukup tutup jendela, dan Anda tidak dapat melihat pesan kesalahan. .