0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

前提

下記環境での動作を前提としている。
PowerShell 5.1

本記事について

実行ポリシーを一時的に変更することで、PowerShellスクリプト(.ps1)を、バッチから実行する方法を示す。
※ 実行ポリシーは、PowerShellスクリプトの実行終了とともに、元に戻る。

バッチから実行する方法

  1. PowerShellの「ExecutionPolicy」オプションに「Unrestricted」を指定する。
  2. PowerShellスクリプトのパスを指定する。
  3. バッチとして保存する。
Hoge.ps1
Write-Host "はろーわーるど"
実行バッチ.bat
PowerShell -ExecutionPolicy Unrestricted Hoge.ps1

TIPS

起動引数を取得したい時

起動引数を取得したい時は、実行バッチの起動引数として、任意の文字列を指定する。

Fuga.ps1
Write-Host $args[0]
実行バッチ引数つき.bat
PowerShell -ExecutionPolicy Unrestricted Fuga.ps1 %1
呼び出しバッチ引数つき.bat "Huga"

終了コードを取りたい時

終了コードを指定した場合は、PowerShellスクリプト側で、終了コードを指定するだけでよい。
※ PowerShellスクリプト側で終了コードを指定していない場合は、「%ERRORLEVEL%」が「0」になる。

Piyo.ps1
exit 1
StartPiyo.bat
PowerShell -ExecutionPolicy Unrestricted Piyo.ps1
echo %ERRORLEVEL%
REM %ERRORLEVEL%は、1である。

さいごに

本記事では、実行ポリシーを一時的に変更し、バッチからPowerShellスクリプトを実行する方法を示した。
※ 本記事は、実行ポリシーの一時的な変更を推奨するものではない。

参考文献

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?