get a folder path from the explorer menu to a powershell variable get a folder path from the explorer menu to a powershell variable powershell powershell

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

http://www.powershellmagazine.com/2013/06/28/pstip-using-the-system-windows-forms-folderbrowserdialog-class/

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.