2016-03-29 5 views
1

Diğer toplu iş dosyalarının kendi dizinini kontrol eden ve bunları belirli bir metin için kontrol eden bir batchfile yazmaya çalıştım. Metin bulunursa, programın sonuna kadar atlamasını istiyorum, aksi takdirde kendisini bulunan dosyaya kopyalayın. İşte çalıştı nasıl: "errorlevel sıfır veya büyükse"Toplu iş dosyası: Metin için arama yapın ve hata devam edin

rem windowsisajoke 
    for %%f in (*.bat) do (set A=%%f) 
    set FILE=%A% 
    set CONTENT=windowsisajoke 
    findstr /i "%CONTENT%" %FILE% >NUL 
    if errorlevel 0 goto end 
    copy %0 %A% 
    :end 
+2

Bize yanlış gider ne olduğunu söyleyebilir misin kullanılır? Hangi hataları aldınız, beklenen sonuç neydi, gerçek sonuç nedir? –

+0

Amaç kötü amaçlı olarak geliyor, ancak kullanıcı adı da öyle. – LinuxDisciple

cevap

2

if errorlevel 0 aslında anlamına gelir. (Biliyorum - çok sezgisel ...)

Ya mantığını değiştirmek:

if errorlevel 1 copy %0 %A% 

veya

if %errorlevel%==0 goto :end 
+0

Teşekkür ederim, gerçekten% errorlevel% kullandım ve iyi çalışıyor! –

İlgili konular