Saya memiliki file .bat di windows yang melakukan tiga hal
cmd1 arg1 arg2
cmd2 arg3
cmd3 arg4 arg5 arg6
Kadang-kadang cmd1 bisa gagal dan tidak apa-apa, saya ingin melanjutkan dan menjalankan cmd2 dan cmd3. Tapi kelelawar saya berhenti di cmd1. Bagaimana saya bisa menghindari ini?
Perbarui untuk kejelasan - ini bukan file .bat lainnya, itu adalah perintah exe. Mudah-mudahan saya tidak perlu membangun pohon file .bat hanya untuk mencapai ini.
windows
command-line
batch-file
ConfusedNoob
sumber
sumber
cmd /C
.Jawaban:
Pilihan lain adalah menggunakan amperstand (
&
)cmd1 & cmd2 & cmd3
Jika Anda menggunakan ganda, itu hanya akan berjalan jika perintah sebelumnya selesai dengan sukses (
%ERRORLEVEL%==0
)cmd1 && cmd2 && cmd3
Jika Anda menggunakan pipa ganda (
||
), itu hanya menjalankan perintah berikutnya jika sebelumnya dilengkapi dengan kode kesalahan (%ERRORLEVEL% NEQ 0
)cmd1 || cmd2 || cmd3
sumber
CHKDSK
perintah, dengan argumen, yang berfungsi. Saya mengetikcheck D: & check E: & check F:
, dan itu berhasil. Argumen yang dimiliki file BAT termasuk/perf /f /r /b /scan
sakelarMenganggap cmds adalah file .bat lainnya yang menumpuk perintah seperti ini:
sumber
Ini bekerja untuk saya:
Ini digunakan
cmd.exe
untuk mengeksekusi perintah dalam instance baru dari interpreter perintah Windows, jadi perintah yang gagal tidak mengganggu skrip batch. The/c
bendera memberitahu juru bahasa untuk mengakhiri segera setelah selesai perintah mengeksekusi.cmd2
mengeksekusi bahkan jika perintah pertama gagal. Lihatcmd /?
dari Windows Command Prompt untuk informasi lebih lanjut.sumber