PowerShell でファイル選択ダイアログを使用できるようにする関数を作成しました。
下記がそのコードです。
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') function global:Open-FileDialog( [string]$Path = ".", [string]$Filter= "全てのファイル(*.*)|*.*", [string]$DialogTitle = "ファイルを選択してください", [switch]$Multi) { <# .SYNOPSIS ファイル選択ダイアログを表示します .DESCRIPTION ファイル選択ダイアログを表示し、ユーザーにファイルを選択させます .PARAMETER Path 初期ディレクトリを指定します。指定しなかった場合はカレントディレクトリとなります。 .PARAMETER Filter 選択できるファイルの種類を指定します。 .PARAMETER DialogTitle ダイアログタイトルを指定します .PARAMETER Multi Multiを指定すると、複数ファイルを選択できるようになります。 .INPUTS なし。オブジェクトをパイプすることはできません。 .OUTPUTS 選択されたファイル .EXAMPLE C:\PS> Open-FileDialog "C:\Work" 初期ディレクトリを C:\Work にしてダイアログを表示します。 .EXAMPLE C:\PS> Open-FileDialog -Filter "Excelファイル(*.xls,*.xlsx)|*.xls,*.xlsx" Excelファイル(*.xls, *.xlsx)のみを選択できるようにします。 .EXAMPLE C:\PS> Open-FileDialog -DialogTitle "Excelファイルを選択してね" ダイアログタイトルを「Excelファイルを選択してね」にします。 .EXAMPLE C:\PS> Open-FileDialog -Multi 複数ファイルを選択できるようにします。 #> $dialog = New-Object System.Windows.Forms.OpenFileDialog $dialog.Filter = $Filter $dialog.InitialDirectory = $Path $dialog.Title = $DialogTitle #複数選択可能にするか? $dialog.MultiSelect = $Multi #if ($Multi) { $dialog.MultiSelect = $True} # ダイアログを表示 if($dialog.ShowDialog() -eq "OK") { #選択されたファイルを返す return $dialog.FileNames } }
.NET Framework の OpenFileDialogクラスを使用しています。
この関数にはヘルプを含めておきました。
詳しい使い方は、下記のようにしてヘルプを参照ください。
help Open-FileDialog -Detailed
コメント
[…] About Author « [Tips] ファイル選択ダイアログを使用する […]