get a folder path from the explorer menu to a powershell variable
Maybe this script is what you want:
Function Select-FolderDialog{ param([string]$Description="Select Folder",[string]$RootFolder="Desktop") [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $objForm = New-Object System.Windows.Forms.FolderBrowserDialog $objForm.Rootfolder = $RootFolder $objForm.Description = $Description $Show = $objForm.ShowDialog() If ($Show -eq "OK") { Return $objForm.SelectedPath } Else { Write-Error "Operation cancelled by user." } }
Use as:
$folder = Select-FolderDialog # the variable contains user folder selection
I found the use of reflection in the selected answer to be a little awkward. The link below offers a more direct approach
Copy and pasted relevant code:
Add-Type -AssemblyName System.Windows.Forms$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog[void]$FolderBrowser.ShowDialog()$FolderBrowser.SelectedPath
The above did not work for me. Running Windows 7 with Powershell Version 2.I did find the following, which did allow the pop-up and selection:
Function Select-FolderDialog { param([string]$Description="Select Folder",[string]$RootFolder="Desktop") [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") Out-Null $objForm = New-Object System.Windows.Forms.FolderBrowserDialog $objForm.Rootfolder = $RootFolder $objForm.Description = $Description $Show = $objForm.ShowDialog() If ($Show -eq "OK") { Return $objForm.SelectedPath } Else { Write-Error "Operation cancelled by user." } }
Just in case others have the same issues.