harryのブログ

ロードバイクとか模型とかゲームについて何か書いてあるかもしれません

PowerShellスクリプトファイル(.ps1)にファイルをドラッグ&ドロップして処理する

  • この記事は 2014年10月06日 にQiitaへ投稿した内容を転記したものです。
  • 本記事は執筆から1年以上が経過しています。

結論

PowerShellスクリプトファイル(.ps1)にファイルをドラッグ&ドロップすることは出来ません。

妥協案

バッチファイル(.bat)にファイルをドラッグ&ドロップし、そのバッチファイルからPowerShellスクリプトを実行することで疑似的に実現出来ます。

  • バッチファイル(.bat)記述例
@echo off
powershell -ExecutionPolicy Unrestricted -File %0\..\example.ps1 %*
foreach ($arg in $args) {
  // do something.
}

蛇足的な解説

バッチファイル(.bat)にファイルをドラッグ&ドロップすると、そのファイルのフルパスがコマンドライン引数に格納されます。 そのコマンドライン引数をスクリプトファイル(.ps1)の引数として渡すことで、ドラッグ&ドロップしたファイルに対して操作が出来ます。

複数のファイルをドラッグ&ドロップした場合、それぞれのフルパスがコマンドライン引数に格納される為、%*で全ての引数をスクリプトファイルに渡します。