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 に答える