batch-file - 批量ERRORLEVEL问题

标签 batch-file cmd windows-xp

我有一个文件可以检查进程是否正在运行。如果是,则循环,如果不是,则将一行回显到 txt 文件中,我的问题是,当进程未运行时,它仍然继续循环。这是我的代码

:a
Tasklist /v | findstr CMD.exe | findstr LAN 
If ERRORLEVEL==1 goto :done
Goto :a

:done

Echo %USERNAME% has logged out. >>log.txt

我认为我在 ERRORLEVEL 上做错了,尽管我已经尝试过错误级别为 0-2 的 if 和 if not 语句。

最佳答案

你不能像那样用错误级别进行比较操作。试试这个:

If ERRORLEVEL 1 goto :done

if %errorlevel% == 1 goto :done

if %errorlevel% EQU 1 goto : done

当您使用 FIND 或 FINDSTR 时,您需要引号:

Tasklist /v | findstr "CMD.exe" | findstr "LAN" 

你也可以使用条件执行:

Tasklist /v | find "CMD.exe" | find "LAN" || goto :done

关于batch-file - 批量ERRORLEVEL问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16781282/

相关文章:

batch-file - 小于或等于

java - 从 .bat 文件运行 jar 文件时调整控制台大小

powershell - Powershell:无效的正则表达式

windows-xp - Windows XP 上的 libxml-ruby 问题

python - 来自 Python 的 XP 中的进程大小

batch-file - 如何使 .bat 文件在电脑启动时自动运行

java - 启动tomcat时如何传递-D附加参数?

windows - 在命令提示符中从命令行打开文件资源管理器

python - 如何以像素为单位计算 Windows CMD shell 的宽度?

php - mysql密码是什么