【バッチファイル】PowerShellファイルを同期実行する

バッチファイルから
 ・PowerShellファイルを
 ・同期実行する
方法を記載します!

PowerShellファイルの実行結果も
取得できます!

PowerShellのコード

ここでは例として、
 ・「PowerShellからのメッセージ出力です!」というメッセージを出力する
 ・「test.ps1」を作成
します。

$ws = new-object -comobject wscript.shell
$result = $ws.popup("PowerShellからのメッセージ出力です!")

# 正常終了の場合、戻り値として「0」を返す
exit 0

# 異常終了の場合、戻り値として「1」を返す
# exit 1
PowerShellファイル
PowerShellファイル

exit [数値]」で戻り値(実行結果)を指定します(5、8行目)。

バッチファイルのコード

ここでは例として、
 ・上記で作成したPowerShellのファイル「test.ps1」を
 ・同期実行
します。
※ここでは先程作成したPowerShellのファイル「test.ps1」をデスクトップ配下に配置しています。

@echo off

rem PowerShellファイルのパスを指定
set psFile=C:\Users\user\Desktop\test.ps1

rem PowerShellファイルを同期実行
powershell -NoProfile -ExecutionPolicy Unrestricted "%psFile%"

rem 実行結果を確認
if %errorlevel% == 0 (
	echo 正常終了しました。戻り値:%errorlevel%
) else (
	echo 異常終了しました。戻り値:%errorlevel%
)

echo.

pause
exit

「PowerShellファイルのパス」を指定します(4行目)。

PowerShellファイルを同期実行します(7行目)。
※「powershell」コマンドで実行します。

ここでいう「同期実行」とは、
 ・PowerShellファイルの完了後にバッチファイルへ制御が返ってくるように実行
という意味です。

「if」と環境変数「errorlevel」により、「戻り値(実行結果)」を判定します(10~14行目)。

実行結果

PowerShellファイルを同期実行できました。

実行結果①
実行結果①
実行結果②
実行結果②

参考

上記のコードで使用した以下の詳細は、公式サイトをご確認ください。

●「powershell」コマンド


●「if」と環境変数「errorlevel」

タイトルとURLをコピーしました