PowerShellで複数のファイルをドラック&ドロップしてみた。

コンピュータ
以前にPowerShellスクリプトにファイルをドラック&ドロップする方法を掲載しましたが、その際ドラック&ドロップをするファイルは1つを想定してサンプルスクリプトを作りました。
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...

コメント