Saya mencoba menulis skrip cmd Windows untuk melakukan beberapa tugas secara seri. Namun, itu selalu berhenti setelah perintah pertama dalam skrip.
Perintah yang dihentikan setelahnya adalah maven build (tidak yakin apakah itu relevan).
Bagaimana cara membuatnya menjalankan dan menjalankan setiap tugas secara bergiliran?
Menginstal perangkat lunak apa pun atau mengkonfigurasi registri dll sama sekali tidak mungkin - ia harus bekerja pada instalasi Windows XP vanilla.
Idealnya saya ingin skrip dibatalkan jika ada perintah yang gagal, tapi itu "bagus untuk dimiliki", tidak penting.
Terima kasih.
windows
batch-file
scripting
cmd
Darren Greaves
sumber
sumber
mvn
adalah file .bat dengan sendirinya, jadi Anda perlu menggunakannyacall
seperti dicall mvn install
; biasanya Anda tidak perlu membuat file cmd tambahan.npm
pembaruan danprotractor
tes. Saya tidak berpikir jawaban ini berlaku untuk saya sampai saya menyadarinpm
danprotractor
merupakan.cmd
file di Windows.Anda dapat menggunakan simbol && di antara perintah untuk menjalankan perintah kedua hanya jika yang pertama berhasil. Info lebih lanjut di sini http://commandwindows.com/command1.htm
sumber
start /B /WAIT calc
Tidak yakin mengapa perintah pertama berhenti. Jika Anda bisa membuatnya paralel, Anda bisa mencoba sesuatu seperti
sumber
/K
sebagai ganti/C
jika Anda ingin shell tetap terbuka setelah perintah Anda dijalankan.cmd.exe
danstart
, cukupstart x.bat1
lakukan.Saya baru saja melakukan tugas yang sama (ish) untuk membuat skrip batch untuk menjalankan skrip uji maven. Masalahnya adalah memanggil skrip maven dengan mvn clean install ... itu sendiri adalah skrip dan perlu dilakukan dengan panggilan mvn clean install.
Kode yang akan bekerja
Perhatikan lebih baik penggunaan panggilan. Ini akan memungkinkan penggunaan skrip maven berturut-turut dalam file batch.
sumber
Menggunakan ampersand ganda akan menjalankan perintah kedua, hanya jika yang pertama berhasil:
Sedangkan, dengan hanya menggunakan satu ampersand akan mencoba menjalankan kedua perintah, meskipun yang pertama gagal:
sumber
Jika Anda menjalankan di Windows, Anda dapat menggunakan perintah berikut.
Mendorong:
sumber
Saya tidak tahu jawaban langsung untuk pertanyaan Anda, tetapi jika Anda melakukan banyak skrip ini, mungkin ada baiknya mempelajari bahasa yang lebih kuat seperti perl. Implementasi gratis tersedia untuk Windows (mis. Activestate, cygwin). Saya merasa bahwa upaya awal untuk tugas-tugas saya sepadan dengan usaha saya.
Edit:
Seperti yang disarankan oleh @Ferruccio, jika Anda tidak dapat menginstal perangkat lunak tambahan, pertimbangkan vbscript dan / atau javascript. Mereka dibangun ke dalam host skrip Windows.
sumber
Perhatikan bahwa Anda tidak memerlukan titik koma dalam file batch. Dan alasan mengapa Anda perlu menggunakan panggilan adalah karena mvn itu sendiri adalah file batch dan file batch perlu memanggil satu sama lain dengan panggilan, jika tidak kontrol tidak akan kembali ke pemanggil.
sumber