我想从cmd.exe运行PowerShell命令(而不是脚本)并正确管理退出代码:
powershell.exe [bool]((get-service wsearch).status -eq 'Running')
但我想将布尔状态作为错误级别返回。
我希望在运行它之后回显%errorlevel%
并使用它来确定服务状态。
答案 0 :(得分:3)
只需使用PowerShell exit
命令将结果作为参数。例如:
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')"
答案 1 :(得分: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