yok eder ben borusu bir günlük dosyası içine bir senaryonun çıktı eğer:Windows toplu dosyası: Boru mümkündür da errorlevel dönmek benim dönüş kodu
test1.bat:
call test2.bat 2>&1 | tee log.txt
echo ERRORLEVEL: %ERRORLEVEL%
test2.bat:
exit /B 1
Çıktı çağıran test1.bat:
ERRORLEVEL: 0
ErrorLevel daima sorundur 0.
, ben bu nedenle çıkış komut satırında gösterilen çıkışı ile eşzamanlı olarak yönlendirilmesi gereken senaryom içinde başka komut çağırmak için basit istiyoruz > benim için yeterli değil. :(
Bana herhangi bir başka önerileri verebilir ... Birkaç fikirleri çalıştı, ancak sonuç borusu her zaman verilen hata seviyesini yok etmek görünüyor ki? Peşin
Teşekkür ... :)
Cevabınız içinTeşekkür ... ne yazık ki bu kadar iyi çalışmıyor ... ne denedim bak :(:
test1.bat:
echo off
set VAR1=" "
echo VAR1 before test2: %VAR1%
call test2.bat 2>&1 | tee log.txt
echo VAR1 after test2: %VAR1%
dnm2: test1.bat çağıran
@echo off
set VAR1=ERROR
echo VAR1 in test2: %VAR1%
exit /B 1
Çıktı:
VAR1 before test2: " "
VAR1 in test2: ERROR
VAR1 after test2: " "
Ben "ErrorValue: 1" kurtarmaya çalıştı bir diğer çözüm olarak durumunda günlük dosyası içine bir hata var. E-postada, bu dizeyi arayan günlüğü ayrıştırmak istedim. Maalesef yanı çalışmıyor bir ortam değişkeni bulmak-sonuç tasarrufu, ben şöyle yaptım gibidir:
FOR /F "tokens=1 delims=" %%A in ('type %logDir%\03_applySqls.log | find /c "ERRORVALUE: 1"') do SET val=%%A
Hata alıyorum:
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Peki nasıl en azından benim günlük dosyasına ayrıştırmak ve edebilirsiniz dize bir errorlevel olarak değer döndürebilir günlüğüne bulunur davası?
çok ilgili: http://stackoverflow.com/questions/11170753/windows-command-interpreter-how-to-obtain-exit-code-of-first -piped-komuta – eckes