バッチファイルからPowerShellスを起動し、同階層、カレントディレクトリの.ps1スクリプトを指定する

 

バッチファイルからPowerShellスを起動し、同階層、カレントディレクトリの.ps1スクリプトを指定する方法に関する情報です。

 

特に絶対パスを使用して固定の場所から実行するなら考慮不要ですが、場所を指定して実行する場合、例えばデスクトップなどから実行する場合に便利です。

 

まずは、こちらです。

 

よくネットで検索すると出てくるパターンです。

 

前提として、バッチファイルを作成して、バッチファイル内に記述しています。

 

pushd %~dp0
powershell -NoProfile -ExecutionPolicy RemoteSigned ".\script.ps1"

 

「pushd %~dp0」で事前にカレントディレクトリに移動してから、同一階層にある「script.ps1」を実行する方法です。

 

バッチファイルでもよく使う手法ではないでしょうか。

 

基本はこれでいいのですが、まれにスクリプトが動作しないことがあり、こちらを利用することもあります。

 

 

ファイル名に「%~dp0%」をすることで、バッチファイルの実行場所にある「script.ps1」を実行できます。

 

> powershell -ExecutionPolicy RemoteSigned -File %~dp0%script.ps1

 

管理者権限の関係でバッチファイルと組み合わせて利用することが多いので、このあたりの手法はいくつか知っておくと便利です。

 

PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説