我是windows批處理編程的新手。如果發現特定的錯誤,我需要編寫一個循環函數來執行任務。請參閱下面的代碼。如何執行如果循環並使用批處理查找文本
我遇到了查找問題,它正在尋找Kitchen.Error.NoRepDefinied。腳本執行五次,即使找不到關鍵字。
請幫我確定問題,並解釋這裏有什麼問題。任何幫助表示讚賞。我正在使用Windows Server 2012 R2。
set /a x=0
:while1
if %x% leq 5 (
echo %x%
call abc.exe > C:\Logs\App_Error.log
set file=C:\Logs\App_error.log
set /a cnt=0
for /f %%a in ('type "%file%"^|find "!Kitchen.Error.NoRepDefinied!" /i /c') do set /a cnt=%%a
if !cnt! NEQ 0 (
if !x! NEQ 5 (
DEL C:\Logs\App_error.log
)
set /a x=x+1
goto :while1
)
echo "OUTSIDE LOOP"
echo The Status is %errorlevel%
call:check_file
exit /b %errorlevel%
)
好菜鳥的努力。 +1在尋求幫助之前投入工作!你有沒有試過'echo!cnt!'來看看爲什麼'!cnt! neq 0'?使用'if!cnt!有沒有什麼不同? gtr 0'?另外,嘗試添加'echo!Kitchen.Error.NoRepDefined!'以確保該變量在循環中具有期望的值。 – rojo 2014-11-24 16:52:03
要等到您的abc.exe填充並關閉日誌,以便您可以正確使用它:啓動「/等待abc.exe> C:\ Logs \ App_Error.log',而不是調用abc.exe> ... '在FOR循環中,'... set set/a cnt = %% a'可能會導致爲零,因爲'%% a'可能是一個文本。然後嘗試像'... do set/a cnt = cnt + 1'。爲了進行調試,請嘗試'... do echo %% a' – JosefZ 2014-11-24 23:03:09