今回は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

コメント