是否可以從PowerShell打開資源管理器窗口並將資源管理器中選定的路徑存儲到變量?獲取從資源管理器菜單到PowerShell變量的文件夾路徑
從PowerShell的
PS C打開資源管理器窗口:>探險
是否可以從PowerShell打開資源管理器窗口並將資源管理器中選定的路徑存儲到變量?獲取從資源管理器菜單到PowerShell變量的文件夾路徑
從PowerShell的
PS C打開資源管理器窗口:>探險
也許這個劇本是你想要什麼:
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."
}
}
用途爲:
$folder = Select-FolderDialog # the variable contains user folder selection
以上沒有爲我工作。運行Windows 7使用PowerShell第2版。 我確實發現以下,這也允許彈出和選擇:
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."
}
}
萬一別人有同樣的問題。
工程,但有時有沒有顯示前面的對話的問題。 – Baodad 2013-08-08 01:19:39
我發現在選定的答案中使用反射會有點尷尬。下面的鏈接提供了一個更直接的方法
複製並粘貼相關代碼:
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$FolderBrowser.SelectedPath
只是想後的增編,我相信這是在兩者之間缺少一個管|
:
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
和:
Out-Null
缺少哪個答案/代碼片段?據我所知,至少在被接受的答案中有一條管道。 – 2017-05-30 22:50:34
您需要在param塊之後移動程序集加載。 – 2012-07-10 12:16:41
@ShayLevy謝謝!現在修復。 – 2012-07-10 12:41:16
完美的工作,謝謝 – naveejr 2012-07-12 03:54:59