今回はPowerShell でフォルダ保存ダイアログを使用できるようにする関数を作成してみました。
下記がそのコードです。
function global:Select-Folder( [string]$Path = ".", [string]$Description= "フォルダを選択してください", [switch]$ShowNewFolder) { <# .SYNOPSIS フォルダ選択ダイアログを表示します .DESCRIPTION フォルダ選択ダイアログを表示し、ユーザーにフォルダを選択させます .PARAMETER Path 初期ディレクトリを指定します。 .PARAMETER Description 説明を表示します。 .PARAMETER ShowNewFolder ShowNewFolderを指定すると、既存のファイルと同じ名前のファイル名を入力した場合にアラートを出します。 .INPUTS なし。オブジェクトをパイプすることはできません。 .OUTPUTS 入力されたファイル名 .EXAMPLE C:\PS> Select-Folder "C:\Work" 初期ディレクトリを C:\Work にしてダイアログを表示します。 .EXAMPLE C:\PS> Select-Folder -Description "Excelファイルがあるフォルダを選択してください" 「Excelファイルがあるフォルダを選択してください」という説明を表示します。 .EXAMPLE C:\PS> Save-FileDialog -ShowNewFolder 既存のファイルと同じ名前のファイル名を入力した場合にアラートを出します。 #> $dialog = New-Object System.Windows.Forms.FolderBrowserDialog $dialog.Description = $Description #[新しいフォルダ]ボタンを表示するか? $dialog.ShowNewFolderButton = $ShowNewFolder # ダイアログを表示 if($dialog.ShowDialog() -eq "OK") { #入力されたファイル名を返す return $dialog.SelectedPath } }
.NET Framework の FolderBrowserDialogクラスを使用しています。
この関数にはヘルプを含めておきました。
詳しい使い方は、下記のようにしてヘルプを参照ください。
help Select-FolderDialog -Detailed
コメント