【PowerShell講座】バッチファイルからスクリプトを実行する

バッチファイルからスクリプトを実行する

※この記事は「2023年7月20日」に更新しました。

PowerShell(パワーシェル)講座です。

今回は、バッチファイルからスクリプト(.ps1)を実行する方法を紹介します。
ぱそた
SE、Web制作、販売を経験した管理人が解説します。

バッチファイルからスクリプトを実行する

バッチファイルからスクリプトを実行する方法を紹介します。

そもそも、なんでこんなことをする必要があるかを説明します。

Windows PowerShell(Windows 7、8.1、10 などに標準搭載されているもの)の場合、デフォルトの実行ポリシーが Restricted(実行不可)になっています。

ぱそた
つまり、実行ポリシーを変更しなければいけないのです。

これは、PowerShell が Windows そのものを操作できるほど強力だからです。

悪意のあるスクリプトを不用意に実行されないために Restricted になっているのです。

PowerShell Core をインストールして、自分で実行する分には問題ありません。

しかし、自分以外に使ってもらおうと思ったら、実行方法を説明するのが大変かもしれません。

  • 実行ポリシーを Unrestricted に変更する
  • スクリプト(.ps1)を実行する
  • 実行ポリシーを Restricted に戻す

これを全てのユーザーにやってもらうのは面倒です。



一時的に実行ポリシーを変更する

一時的に実行ポリシーを変更するには、-ExecutionPolicyオプションを使います。

powershell -ExecutionPolicy Unrestricted

これをコマンドプロンプトから実行すると、一時的に Unrestricted で PowerShell を使うことができます。

バッチファイルを作成する

先程の内容を踏まえて、バッチファイル(run.bat)を作成します。

ちなみにスクリプトは、test.ps1 です。

ぱそた
まずは、run.bat のソースを紹介します。
@echo off
echo 実行しています。
echo;
powershell -ExecutionPolicy Unrestricted -File test.ps1
echo;
echo 実行完了しました。
pause > nul
ぱそた
続いて、test.ps1 のソースです。
Write-Host "PowerShell のサンプルコードです。"

作成した run.bat を test.ps1 と同じ階層に設置して実行してもらうと run.bat をダブルクリックするだけで実行することが可能です。

バッチファイルからスクリプトを実行する

もちろん、実行ポリシーは一時的なものなので Restricted に戻す必要もありません。

最後に

前回は、Excel を操作する方法を紹介しました。

Excelを操作する

【PowerShell講座】Excelを操作する

2020年1月17日

今回のバッチファイルを使えば、PowerShell(パワーシェル)で作成したスクリプトをガンガン動かすことができます。

色々試してみると面白いかと思います。