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

26,635

Solution 1

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

Solution 2

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

Solution 3

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.

Share:
26,635
naveejr
Author by

naveejr

@naveejr

Updated on July 09, 2022

Comments

  • naveejr
    naveejr almost 2 years

    is it possible to open a explorer window from powershell and store the path selected in the explorer, to a variable?

    to open explorer window from powershell

    PS C:> explorer