3

我想从 cmd.exe 运行 PowerShell 命令(不是脚本)并正确管理退出代码:

powershell.exe [bool]((get-service wsearch).status -eq 'Running')

但我想将布尔状态作为错误级别返回。

我想%errorlevel%在运行后回显并使用它来确定服务状态。

4

2 回答 2

3

只需使用 PowerShellexit命令将结果作为参数提供。例如:

C:\>powershell -command "exit [int]$true;"

C:\>echo %errorlevel%
1

C:\>powershell -command "exit [int]$false;"

C:\>echo %errorlevel%
0

或者对于您的情况:

powershell.exe -command "exit [int]((get-service wsearch).status -eq 'Running')"
于 2012-10-19T23:04:26.690 回答
0

您也可以使用此变体:

CMD I> Set cmd=powershell -c "((gsv wsearch -ea 0).status -eq 'Running')"
CMD I> %cmd% |>nul find "True" && echo RUNNING||echo NOT RUNNING
RUNNING

CMD I> Set cmd=powershell -c "((gsv youka -ea 0).status -eq 'Running')"
CMD I> %cmd% |>nul find "True" && echo RUNNING||echo NOT RUNNING
NOT RUNNING
于 2012-10-20T17:58:21.827 回答