
PowerShellのスクリプトにファイルをドラックアンドドロップする方法
はじめにPowerShellのスクリプトで引数を取る場合CUIでファイル名を指定するのもよいですがファイルをドラックアンドドロップ出来てほしい場面もあります。やり方としてはps1ファイルへのショートカットを作成してそちらにファイルをドラック...
複数ファイルが引き渡された場合どのような振る舞いになるか気になりましたので試してみました。
スクリプト
<#
# 引数をメッセージボックスで表示するスクリプト
# ファイル名:msgbox2.ps1
#>
Add-Type -Assembly System.Windows.Forms
$file = ""
foreach($arg in $Args) {
if ($file -eq "") {
$file = $arg
} else {
$file = $file + "`n" + $arg
}
}
# メッセージボックスの表示
[System.Windows.Forms.MessageBox]::Show("${file}", "引数の値")
結果

結論としてはドラック&ドロップした複数ファイルのパスが、変数の
$Args
に配列の要素として引き渡されます。ある意味当たり前と言えば当たり前ですが、PowerShellの場合パイプの処理のようなケースもありますので念の為試してみた次第です。

PowerShellパイプの振る舞い
スクリプト # # パイプのテスト # function TestFunc { param ( $val ) begin { "TestFunc:Be...
コメント