是有可能還返回錯誤級別,如果我管一個腳本的輸出到一個日誌文件:的Windows批處理文件:管道破壞了我的返回碼
test1.bat:
call test2.bat 2>&1 | tee log.txt
echo ERRORLEVEL: %ERRORLEVEL%
test2.bat:
exit /B 1
輸出打電話時test1.bat:
ERRORLEVEL: 0
的錯誤級別始終爲0
的問題是,我想打電話給我的劇本里另一個腳本,輸出應同步在命令行中顯示的輸出重定向,因此一個簡單的>對我來說還不夠。我試了幾個想法,但結果是,管似乎總是破壞給定的錯誤級... :(
你能不能給我任何進一步的建議?提前
謝謝... :)
謝謝您的回答... 不幸的是,這並不工作,以及... :(見我的嘗試:
test1.bat:
echo off
set VAR1=" "
echo VAR1 before test2: %VAR1%
call test2.bat 2>&1 | tee log.txt
echo VAR1 after test2: %VAR1%
TEST2:
@echo off
set VAR1=ERROR
echo VAR1 in test2: %VAR1%
exit /B 1
輸出主叫test1.bat時:
VAR1 before test2: " "
VAR1 in test2: ERROR
VAR1 after test2: " "
正如我試圖 「ERRORVALUE:1」 保存其他溶液到日誌文件的情況下,有錯誤。在主文中,我想解析查找這個字符串的日誌。不幸的是節省了查找,結果到環境變量不工作,以及,我根本如下:
FOR /F "tokens=1 delims=" %%A in ('type %logDir%\03_applySqls.log | find /c "ERRORVALUE: 1"') do SET val=%%A
錯誤,我得到:
"|" ist syntaktisch an dieser Stelle nicht verarbeitbar.
所以,我怎麼能至少解析我的日誌文件,然後在在日誌中發現字符串的情況下,我可以返回值作爲錯誤級別?
很有關係:http://stackoverflow.com/questions/11170753/windows-command-interpreter-how-to-obtain-exit-code-of-first -piped命令 – eckes 2016-07-07 10:39:50