从CMD调用powershell.exe并退出代码boolean

时间:2012-10-19 22:26:05

标签: powershell cmd

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

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

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

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

2 个答案:

答案 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