gpt4 book ai didi

windows - 如何执行 If 循环并使用批处理查找文本

转载 作者:可可西里 更新时间:2023-11-01 10:35:53 25 4
gpt4 key购买 nike

我是 Windows 批处理编程的新手。如果发现特定错误,我需要编写一个循环函数来执行任务。请看下面的代码。

我在查找 Kitchen.Error.NoRepDefined 时遇到问题。即使未找到 find 关键字,该脚本也会执行五次。

请帮我找出问题所在,并说明这里出了什么问题。任何帮助表示赞赏。我使用的是 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%
)

最佳答案

简化代码。

循环(最多 5 次)调用流程。如果进程没有返回错误级别,如果在日志文件中没有找到搜索到的字符串,则退出循环。

    set "logFile=c:\logs\App_Error.log"

for /l %%x in (1 1 5) do (
echo Loop %%x
> "%logFile%" call abc.exe
if not errorlevel 1 (
find "Kitchen.Error.NoRepDefinied" "%logFile%" >nul 2>&1 || goto :endLoop
)
)

:endLoop

我不确定您要获取的 errorlevel 值。

关于windows - 如何执行 If 循环并使用批处理查找文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27108116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com