PowerShell 메모 폴더 선택 대화 상자
5478 단어 .NETFrameworkPowerShell
개요
폴더 선택 대화 상자에서 폴더 경로를 얻는 함수.
코드
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
}
}
실행 예
동작 확인한 환경
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
}
}
실행 예
동작 확인한 환경
Reference
이 문제에 관하여(PowerShell 메모 폴더 선택 대화 상자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kosen-amai/items/7b2339d7de8223ab77c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)