Apakah ada cara untuk menelusuri skrip .bat? Masalahnya, saya memiliki skrip build, yang memanggil banyak skrip lain, dan saya ingin melihat urutan pemanggilannya, sehingga saya dapat mengetahui ke mana tepatnya saya harus pergi dan menambahkan modifikasi saya .
windows
batch-file
debugging
cmd
Vhaerun
sumber
sumber
Jawaban:
Saya tidak tahu bagaimana cara melangkah melalui eksekusi file .bat tetapi Anda dapat menggunakan
echo
danpause
membantu dengan debugging.Sumber: Bantuan File Batch
@ workmad3: jawaban memiliki lebih banyak tip bagus untuk bekerja dengan
echo
perintah.Sumber daya lain yang bermanfaat ... DDB: DOS Batch File Tips
sumber
Pastikan tidak ada pernyataan 'echo off' dalam skrip dan panggil 'echo on' setelah memanggil setiap skrip untuk mengatur ulang semua yang terlewat.
Alasannya adalah jika echo dibiarkan hidup, maka penerjemah perintah akan mengeluarkan setiap perintah (setelah pemrosesan parameter) sebelum menjalankannya. Membuatnya terlihat sangat buruk untuk digunakan dalam produksi, tetapi sangat berguna untuk tujuan debugging karena Anda dapat melihat kesalahan keluaran.
Juga, pastikan Anda memeriksa ErrorLevels yang ditetapkan oleh skrip dan program batch yang disebut. Ingatlah bahwa ada 2 metode berbeda yang digunakan dalam file .bat untuk ini. Jika Anda memanggil sebuah program, tingkat kesalahan dalam% ERRORLEVEL%, sedangkan dari file batch tingkat kesalahan dikembalikan dalam variabel ErrorLevel dan tidak membutuhkan% di sekitarnya.
sumber
Menghadapi masalah serupa, saya menemukan alat berikut dengan pencarian Google yang sepele:
" Ambil Perintah " JPSoft menyertakan IDE / debugger file batch. Video presentasi singkat mereka menunjukkannya dengan baik.
Saya menggunakan versi uji coba sejak beberapa jam. Inilah pendapat pertama saya yang sederhana:
Itu membatalkan sebuah percobaan.
sumber
Always quote the most relevant part of an important link
. Tanpa tautan, jawaban ini larut, yang, sekali lagi, mungkin baik-baik saja, tetapi biasanya jenis saran ad-hoc dari perangkat lunak berpemilik yang tidak teruji ini umumnya paling cocok dengan komentar. Jangan ragu untuk meninggalkannya juga.Saya menemukan perangkat lunak 'langkah berjalan' (win32) melakukan persis seperti yang saya cari: http://www.steppingsoftware.com/
Anda dapat memuat file bat, menempatkan breakpoints / mulai melangkah melewatinya sambil melihat variabel output dan lingkungan.
Versi evaluasi hanya memungkinkan untuk melangkah melalui 50 baris ... Apakah ada yang punya alternatif gratis dengan fungsi serupa?
sumber
keluarkan @ECHO OFF dan panggil file batch Anda mengarahkan ulang SEMUA output ke file log ..
c:> yourbatch.bat (parameter opsional)> yourlogfile.txt 2> & 1
ditemukan di http://www.robvanderwoude.com/battech_debugging.php
BERHASIL!! jangan lupa 2> & 1 ...
AHLI
sumber
Satu-satunya cara yang dapat saya pikirkan adalah memercikkan kode dengan
echo
s danpause
s.sumber
Apakah Anda mencoba mengubah rute hasil ke file? Seperti apapun.bat> log.txt
Anda harus memastikan bahwa dalam kasus ini setiap skrip yang dipanggil juga masuk ke file seperti >> log.txt
Juga jika Anda meletakkan tanggal / T dan waktu / T di awal dan di akhir file batch itu, Anda akan mendapatkan waktu saat itu pada saat itu dan Anda dapat memetakan waktu dan urutan skrip Anda berjalan.
sumber
Atau .... Panggil file .bat utama Anda dari file .bat lain dan keluarkan hasilnya ke file hasil yaitu
runner.bat> mainresults.txt
Di mana runner.bat memanggil file .bat utama
Anda harus melihat semua tindakan yang dilakukan di file .bat utama sekarang
sumber
Masalah yang cukup sering terjadi adalah skrip batch dijalankan dengan mengklik dua kali ikonnya. Karena
cmd.exe
instans Command Prompt ( ) hosting juga akan berhenti, maka tidak mungkin membaca output potensial dan pesan kesalahan.Untuk membaca pesan semacam itu, sangat penting bagi Anda untuk secara eksplisit membuka jendela Command Prompt, bermanuver ke direktori kerja yang berlaku dan menjalankan skrip batch dengan mengetikkan jalur / namanya.
sumber
Anda dapat menggunakan
cmd \k
di akhir skrip Anda untuk melihat kesalahan. itu tidak akan menutup command prompt Anda setelah eksekusi selesaisumber
atau, buka jendela cmd, lalu panggil batch dari sana, hasilnya akan ditampilkan di layar.
sumber