powershlell で作成したスクリプトをバッチファイルで起動する方法をまとめました。
「powershellを実行させるときにクリック操作で実行できたら楽だな」と思ったのがきっかけで、バッチファイルと組み合わせることで実現ができそうであったので試してみました。
バッチファイルでpowershellを実行する
今回は「C:\hogehoge」にある「hogehoge.ps1」をバッチファイルで実行させます。
「hogehoge.ps1」ファイルの準備
「hogehoge.ps1」には「hogehoge」の文字列を出力をするよう以下の通り記載します。
・hogehoge.ps1
$hogehoge = "hogehoge"
Write-Host $hogehoge
バッチファイルの準備
拡張子をbatにしたファイルに以下の内容をコピー・ペーストしてバッチファイルを作成します。
・hogehoge.bat
powershell -ExecutionPolicy Unrestricted -File C:\hogehoge\hogehoge.ps1
pause
スクリプトの内容
powershell コマンドは「-File」で指定されたファイルを powershell として実行することができます。
また、今回は「-ExecutionPolicy」を利用して powershell の実行ポリシーを「Unrestricted」(=どんなファイルでも実行する)として「.ps1」ファイルを実行させています。
バッチファイルの実行結果
上記で用意したバッチファイルをクリックしスクリプトを実行させます。
プロンプトが起動して、標準出力に「hogehoge」と出力され、正常に powershell ファイルが実行されたことがわかります。
今回はわかりやすいようにps1ファイルとバッチファイルを同じ階層に置いて実行させましたが、バッチファイル内にps1ファイルのフルパスが書いてあるので、どこで実行しても起動できます。
また、バッチファイル内の最後に「pause」を記載することで、「続行するには何かキーを押してください・・・」と表示され、何かしらコマンドをたたくまでプロンプトが表示されたままになります。
「pause」は不要であればなくしても実行できますが、このように出力を確認したいときやエラーを確認したいときなどはあったほうがデバッグなどができて便利です。