cmd*_*cmd 3 windows-xp cmd batch-file
我有一个文件用于检查进程是否正在运行。如果是这样,那么它会循环,如果不是,它会将一行回显到 txt 文件中,我的问题是,当进程未运行时,它仍然继续循环。这是我的代码
:a
Tasklist /v | findstr CMD.exe | findstr LAN
If ERRORLEVEL==1 goto :done
Goto :a
:done
Echo %USERNAME% has logged out. >>log.txt
Run Code Online (Sandbox Code Playgroud)
我认为我在 ERRORLEVEL 上做错了,尽管我已经尝试过使用错误级别为 0-2 的 if 和 if not 语句。
你不能用这样的错误级别进行比较操作。试试这个:
If ERRORLEVEL 1 goto :done
Run Code Online (Sandbox Code Playgroud)
或者
if %errorlevel% == 1 goto :done
Run Code Online (Sandbox Code Playgroud)
或者
if %errorlevel% EQU 1 goto : done
Run Code Online (Sandbox Code Playgroud)
当您使用 FIND 或 FINDSTR 时,您需要引号:
Tasklist /v | findstr "CMD.exe" | findstr "LAN"
Run Code Online (Sandbox Code Playgroud)
您还可以使用条件执行:
Tasklist /v | find "CMD.exe" | find "LAN" || goto :done
Run Code Online (Sandbox Code Playgroud)