
PowerShellのスクリプトにファイルをドラックアンドドロップする方法
はじめにPowerShellのスクリプトを実行する場合シェルを起動してコマンド入力しますが、引数ファイルをドラックアンドドロップで実行すると便利な場合があります。やり方としては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:Begin" } process { "TestFunc(val:${val})" } end { ...
コメント