public/Invoke-DialogFolderSelect.ps1
function Get-DialogFolderSelect { <# .SYNOPSIS Display a Folder selection dialog .DESCRIPTION Display a folder selection dialog to choose a target folder .PARAMETER InitialDirectory Optional. If empty, will default to the current default working directory .EXAMPLE $folder = Get-DialogFolderSelect -InitialDirectory "c:\projects" .LINK https://github.com/Skatterbrainz/ds-utils/blob/master/docs/Get-DialogFolderSelect.md #> param ( [parameter()][string]$InitialDirectory = "" ) [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') $FolderBrowserDialog = New-Object System.Windows.Forms.FolderBrowserDialog $FolderBrowserDialog.RootFolder = 'MyComputer' if (![string]::IsNullOrWhiteSpace($initialDirectory)) { $FolderBrowserDialog.SelectedPath = $initialDirectory } Write-Host -ForegroundColor Yellow "* * * W A R N I N G : Dialog form may be hidden behind another window * * *" Write-Host [void] $FolderBrowserDialog.ShowDialog() $selected = $FolderBrowserDialog.SelectedPath $FolderBrowserDialog.Dispose() return $selected } |