Toplu Komut Dosyası - Hata Ayıklama

Çoğu zaman, toplu iş dosyalarını çalıştırırken sorunlarla karşılaşabilirsiniz ve çoğu zaman, toplu iş dosyasının kendisiyle ilgili sorunu belirlemek için toplu iş dosyalarınızda bir şekilde veya diğerinde hata ayıklamanız gerekir. Aşağıda, Batch Script dosyalarında hata ayıklamaya yardımcı olabilecek tekniklerden bazıları verilmiştir.

Hata mesajları

Mesajın kaynağını keşfetmek için şu adımları izleyin -

Step 1 - @ECHO OFF hattını REM, yani REM @ECHO OFF veya :: @ECHO OFF.

Step 2 - Toplu iş dosyasını gerekli komut satırı parametreleriyle çalıştırın ve tüm çıktıları daha sonra karşılaştırma için bir günlük dosyasına yeniden yönlendirin.

test.bat > batch.log 2>&1

Step 3 - Hata mesajları için batch.log dosyasında arama yapın

Step 4- Herhangi bir beklenmedik veya geçersiz komut, komut satırı anahtarı (ları) veya değer (ler) için önceki satırı kontrol edin; komutta kullanılan ortam değişkenlerinin değerlerine özellikle dikkat edin.

Step 5 - Hatayı düzeltin ve tüm hata mesajları kaybolana kadar bu işlemi tekrarlayın.

Karmaşık Komut Satırları

Başka bir yaygın hata kaynağı, örneğin "iç içe geçmiş" FIND veya yanlış arama dizelerine sahip FINDSTR komutları gibi, bazen FOR / F döngüsü içinde yanlış yönlendirilmiş komutlardır.

Bu karmaşık komutların geçerliliğini kontrol etmek için şu adımları izleyin -

Step 1 - Karmaşık komut kümesini kullanan bir satırın hemen önüne "komut kontrol satırları" ekleyin.

Aşağıda, ECHO komutunun, birinci TYPE komutunun çıktısının nerede bitip bir sonrakinin nerede başladığını işaretlemek için eklendiği bir örnek verilmiştir.

TYPE %Temp%.\apipaorg.reg
ECHO.================================================ TYPE %Temp%.\apipaorg.reg 
| FIND 
"[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\Interfaces\"

Step 2 - Yukarıda açıklanan hata mesajı kaynaklarını bulmak için prosedürü izleyin.

Step 3- "Basitleştirilmiş" komut satırlarının çıktısına özellikle dikkat edin: Beklenen biçimin çıktısı mı? "Belirteç" değeri veya konumu beklendiği gibi mi?

Altyordamlar

Hata mesajları üreten alt programlar, aynı toplu iş dosyasında birden çok kez çağrılabileceklerinden, hatanın nedenini bulmada fazladan bir "zorluk" oluşturur.

Alt rutine yanlış çağrıya neyin neden olduğunu bulmaya yardımcı olmak için şu adımları izleyin -

Step 1 - Komut dosyasının başına bir sayaç değişkeni ekleyin ve sıfırlayın -

SET Counter = 0

Step 2 - Alt rutin her çağrıldığında, alt programın başına aşağıdaki satırı ekleyerek sayacı artırın

SET /A Counter+=1

Step 3- Sayaç artışından hemen sonra sadece SET komutunu içeren başka bir satır ekleyin; bu, tüm ortam değişkenlerini ve değerlerini listeleyecektir.

Step 4 - Yukarıda açıklanan hata mesajı kaynaklarını bulmak için prosedürü izleyin.

Windows Sürümleri

Toplu iş dosyalarınızı aynı Windows sürümünü çalıştırabilecek veya çalıştırmayabilecek başka bilgisayarlara dağıtmayı düşünüyorsanız, toplu iş dosyalarınızı olabildiğince çok Windows sürümünde test etmeniz gerekecektir.

Aşağıdaki örnek, ilgili Windows sürümlerini kontrol etmek için çeşitli işletim sistemi sürümlerinin nasıl kontrol edileceğini gösterir.

@ECHO OFF
:: Check for Windows NT 4 and later

IF NOT "%OS%"=="Windows_NT" GOTO DontRun
:: Check for Windows NT 4
VER | FIND "Windows NT" >NUL && GOTO DontRun
:: Check for Windows 2000
VER | FIND "Windows 2000" >NUL && GOTO DontRun
:: Place actual code here . . .
:: End of actual code . . .
EXIT

:DontRun
ECHO Sorry, this batch file was written for Windows XP and later versions only