PowerShell 메모 폴더 선택 대화 상자

개요



폴더 선택 대화 상자에서 폴더 경로를 얻는 함수.

코드


Add-Type -AssemblyName System.Windows.Forms

<#
.SYNOPSIS
    フォルダ選択ダイアログ表示

.DESCRIPTION
    フォルダ選択ダイアログを表示し、選択したフォルダパスを返す。

.PARAMETER Description
    ダイアログに表示する説明文(省略可)

.PARAMETER CurrentDefault
    カレントディレクトリをダイアログの初期フォルダとするか否か(省略可)

.OUTPUTS
    選択したフォルダパス。キャンセル時はnull
#>
function Get-FolderPathG
{
    param(
        [Parameter(ValueFromPipeline=$true)]
        [string]$Description = "フォルダを選択してください",
        [boolean]$CurrentDefault = $false
    )
    # メインウィンドウ取得
    $process = [Diagnostics.Process]::GetCurrentProcess()
    $window = New-Object Windows.Forms.NativeWindow
    $window.AssignHandle($process.MainWindowHandle)

    $fd = New-Object System.Windows.Forms.FolderBrowserDialog
    $fd.Description = $Description

    if($CurrentDefault -eq $true){
        # カレントディレクトリを初期フォルダとする
        $fd.SelectedPath = (Get-Item $PWD).FullName
    }

    # フォルダ選択ダイアログ表示
    $ret = $fd.ShowDialog($window)

    if($ret -eq [System.Windows.Forms.DialogResult]::OK){
        return $fd.SelectedPath
    }
    else{
        return $null
    }
}

실행 예





동작 확인한 환경


  • PowerShell V4 (Windows 8.1)
  • PowerShell V5 (Windows 10)
  • 좋은 웹페이지 즐겨찾기