gpt4 book ai didi

windows - For 循环中的错误级别(Windows 批处理)

转载 作者:可可西里 更新时间:2023-11-01 12:14:04 25 4
gpt4 key购买 nike

我有以下 Windows 批处理代码:

for %%i in (iidbms iigcc iigcd dmfacp dmfrcp rmcmd qwerty) do (
tasklist | findstr /i %%i
echo %errorlevel%
if %errorlevel% == 0 (echo %%i ok process found %errorlevel%)
if %errorlevel% == 1 (echo %%i no process found %errorlevel%)
)

但它并没有像我预期的那样工作。

所有名称进程 iidbms, iigcc, iigcd, dmfacp, dmfrcp, rmcmd 是真实的,它们被发现了,而不是 qwerty 是一个发明的,不应该找到它,所以应该打印 "no process found 1",但它不会,它总是打印 0。

但我注意到,如果我运行 tasklist | findstr/i qwerty 来自 dos 提示符,就在 %errorlevel% = 1 之后。

什么样的答案可能或更好?

最佳答案

添加

setlocal EnableDelayedExpansion

到脚本的开头,然后使用!errorlevel! 而不是 %errorlevel%

Delayed Expansion will cause variables to be expanded at executiontime rather than at parse time

~ http://ss64.com/nt/delayedexpansion.html

另一个问题的答案为我指明了正确的方向:
Errorlevel of command executed by batch for loop

关于windows - For 循环中的错误级别(Windows 批处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942265/

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