Windows批处理:查找命令和错误级别
Windows batch: find command and errorlevel
我正在尝试使用 find 命令和错误级别来评估命令的结果
Setlocal EnableDelayedExpansion
...
nssm status MyService | find "SERVICE_STOPPED"
if !errorlevel! equ 0 (
echo MyService is not running
)
因为我知道命令 "nssm status MyService" returns "SERVICE_STOPPED" 我希望 find 将错误级别设置为 0。
相反,它被设置为 1。
为什么?
一个删除的答案显示了 nssm
输出的编码(我没有,所以无法验证)。每个字母都用两个字节编码(第二个是 0x00
)。所以这个(公认的丑陋的)解决方法应该有效:
nssm status MyService | findstr "S.E.R.V.I.C.E._.S.T.O.P.P.E.D"
if !errorlevel! equ 0 (
echo MyService is not running
)
我正在尝试使用 find 命令和错误级别来评估命令的结果
Setlocal EnableDelayedExpansion
...
nssm status MyService | find "SERVICE_STOPPED"
if !errorlevel! equ 0 (
echo MyService is not running
)
因为我知道命令 "nssm status MyService" returns "SERVICE_STOPPED" 我希望 find 将错误级别设置为 0。 相反,它被设置为 1。 为什么?
一个删除的答案显示了 nssm
输出的编码(我没有,所以无法验证)。每个字母都用两个字节编码(第二个是 0x00
)。所以这个(公认的丑陋的)解决方法应该有效:
nssm status MyService | findstr "S.E.R.V.I.C.E._.S.T.O.P.P.E.D"
if !errorlevel! equ 0 (
echo MyService is not running
)