- この記事は 2014年10月06日 にQiitaへ投稿した内容を転記したものです。
- 本記事は執筆から1年以上が経過しています。
結論
PowerShellのスクリプトファイル(.ps1)にファイルをドラッグ&ドロップすることは出来ません。
妥協案
バッチファイル(.bat)にファイルをドラッグ&ドロップし、そのバッチファイルからPowerShellのスクリプトを実行することで疑似的に実現出来ます。
- バッチファイル(.bat)記述例
@echo off powershell -ExecutionPolicy Unrestricted -File %0\..\example.ps1 %*
- スクリプトファイル(.ps1)記述例
foreach ($arg in $args) { // do something. }
蛇足的な解説
バッチファイル(.bat)にファイルをドラッグ&ドロップすると、そのファイルのフルパスがコマンドライン引数に格納されます。 そのコマンドライン引数をスクリプトファイル(.ps1)の引数として渡すことで、ドラッグ&ドロップしたファイルに対して操作が出来ます。
複数のファイルをドラッグ&ドロップした場合、それぞれのフルパスがコマンドライン引数に格納される為、%*
で全ての引数をスクリプトファイルに渡します。