バッチファイルでPowerShell実行ポリシーを一時的に設定しつつ、Excel一括検索スクリプトを実行する方法

eye catching image of powershell execution policy excel search IT・AI活用実践

この記事で扱う内容

以下の記事でご紹介したPowerShellスクリプトの実行方法の応用版です。

バッチファイルを使用し、ダブルクリックでスクリプトを起動できるようにします。

その際、バッチファイル内で、スクリプト実行前後にPowerShell実行ポリシーを一時的に変更します。

そうすることで、スクリプト実行前に実行ポリシーを緩めてスクリプトを実行できるようにし、スクリプト実行後に元に戻す等の運用が必要なくなります。

前提

前提知識・前提スキル

  • Windows OS の基本操作ができる人

前提環境

  • 使用PC
    • OS が Windows 10または 11であること
    • PowerShell 5.1がインストールされていること(Windows 10または11標準搭載)
    • Microsoft Excelがインストールされていること
    • 以下の記事のPowerShellスクリプトが作成済みであること

古い環境でも、同様の方法で実現可能な場合があります。

バッチファイルでPowerShell実行ポリシーを一時的に設定しつつ、Excel一括検索スクリプトを実行する方法

バッチファイルの作成

バッチファイルの作成のアイキャッチ画像

メモ帳を起動する

スタートメニューで「memo」を検索後、「メモ帳」を選択し起動する

メモ帳にコマンドを貼り付け、Excel一括検索スクリプトと同じ場所に保存する

例)D:\PowerShellScript\Search-ExcelContent.bat

@echo off
setlocal

REM カレントディレクトリのパス(バッチファイルのある場所)
set "BASE_DIR=%~dp0"

REM PowerShellスクリプトのパス(script フォルダ内)
set "SCRIPT_PATH=%BASE_DIR%Search-ExcelContent.ps1"

REM PowerShell 実行(実行ポリシーはプロセス限定で RemoteSigned に)
powershell -NoProfile -ExecutionPolicy RemoteSigned -File "%SCRIPT_PATH%"

endlocal
pause

※同じ場所にExcel一括検索スクリプトが保存されていること

ファイルを保存するとき、エンコードは「ANSI」で保存してください。
※メモ帳で自動的に設定されていますが、改行コードは「CRLF」で保存してください。

上記のコマンドでは、「実行プロセス(バッチファイルで起動したスクリプトが動いている間)」のPowerShell実行ポリシーを「RemoteSigned」に設定します。用途に応じて、適宜、変更してください。

PowerShell実行ポリシーおよびスコープについては、以下の記事で説明しています。

バッチファイルの実行手順

バッチファイルの実行手順のアイキャッチ画像

バッチファイルを実行する

エクスプローラーでバッチファイルの保存先を開き、バッチファイルをダブルクリックする

ウィンドウが開き、開いたウィンドウ上にExcel一括検索スクリプトの実行時ログが出力されるため、問題ないことを確認後、任意のキーを押し、ウィンドウを閉じる

バッチファイルの実行結果

バッチファイルの実行結果のアイキャッチ画像
  • Excel一括検索スクリプトの実行時ログがウィンドウに出力されます。
  • Excel一括検索スクリプトの実行時ログのログファイルが出力先フォルダに出力されます。
  • Excel一括検索スクリプトの検索結果Excelファイルが出力先フォルダに出力され、自動で開きます。

以下の記事のスクリプト実行結果に参考画像があります。

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