PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

Windows PowerShellのスクリプトファイルを利用していると、バッチファイルのようにファイルをドラッグ&ドロップして処理を実行したい場合があります。

ですが、PowerShellスクリプトファイル自体には、ファイルをドラッグ&ドロップすることができません。

そんなときは、ここで紹介するいずれかの方法で、ドラッグ&ドロップしたファイルをPowerShellスクリプトの引数として処理させることができます。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
Windows10 Pro 64bit 1909
Windows PowerShell 5.1.18362.628

ご自分の環境のWindows PowerShellのバージョンは「Get-Host」コマンドレットで確認できます。

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

テスト用PowerShellスクリプト

ドラッグ&ドロップしたファイルを引数として受け取れているかを確認するために、次のようなテスト用PowerShellスクリプトファイルを用意しておきます。

ちなみに、スクリプトファイルの引数は$argsに格納されます。

foreach ($arg in $args) {
  echo $arg
  Read-Host "続けるには Enter キーを押してください。"
}

ショートカットを経由する方法

一つ目の方法は、PowerShellスクリプトファイルのショートカットを作成し、ショートカットにファイルをドラッグ&ドロップして処理させる方法です。

手順は、次のとおりです。

まず、右クリックメニューなどからPowerShellスクリプトファイルのショートカットを作成します。

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

次に、作成したショートカットのプロパティ画面が開き、リンク先に表示されている文字列(ファイルパス)の前に、以下の文字列を追記し「OK」をクリックします。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File <元の文字列>

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

以上で、作成したショートカットにファイルをドラッグ&ドロップすると、ドラッグ&ドロップしたファイルが、PowerShellスクリプトの引数として処理できます。

以下の画像は、テスト用のPowerShellスクリプトファイル(sample.ps1)のショートカット作成して、ファイルをドラッグ&ドロップした様子です。

ドラッグ&ドロップしたファイルのパスが1ファイルずつ表示されていることを確認できます。

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

バッチファイルを経由する方法

2つ目の方法は、PowerShellスクリプトファイルを実行するためのバッチファイルを作成し、バッチファイルにファイルをドラッグ&ドロップして処理させる方法です。

バッチファイルの記述内容は、次のとおりです。

@echo off
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File E:\sample.ps1 %*

「E:\sample.ps1」の部分には、実行したいPowerShellスクリプトファイルを記述します。

上のバッチファイルでは、ドラッグ&ドロップしたファイルをPowerShellスクリプトの引数に「%*」で指定しています。

以下の画像は、テスト用のPowerShellスクリプトファイル(sample.ps1)利用して、バッチファイルにファイルをドラッグ&ドロップした様子です。

ドラッグ&ドロップしたファイルのパスが1ファイルずつ表示されていることを確認できます。

PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法

あとがき

不特定のファイルに対して処理を行いたいとき、ドラッグ&ドロップで実行できるようにしておけば、スクリプト内でファイルを指定する必要がないので便利です。

お試しあれ。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ
トップへ戻る