是否可以从 powershell 打开资源管理器窗口并将资源管理器中选择的路径存储到变量中?
从 powershell 打开资源管理器窗口
PS C:> 资源管理器
是否可以从 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
我发现在所选答案中使用反射有点尴尬。下面的链接提供了更直接的方法
复制粘贴相关代码:
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$FolderBrowser.SelectedPath
以上对我不起作用。使用 Powershell 版本 2 运行 Windows 7。我确实找到了以下内容,它确实允许弹出和选择:
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."
}
}
以防其他人有同样的问题。
只是想发布一个附录,我相信|
中间缺少一个管道:
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
和:
Out-Null
这是一个打开资源管理器对话框窗口的解决方案,要求用户选择一个文件夹。然后将文件夹路径存储在名为“path”的变量中:
Add-Type -AssemblyName System.Windows.Forms
$browser = New-Object System.Windows.Forms.FolderBrowserDialog
$null = $browser.ShowDialog()
$path = $browser.SelectedPathode
只有在我将“ .SelectedPathode ”替换为“ .SelectedPath ”之后,您的代码才对我有用
Add-Type -AssemblyName System.Windows.Forms
$browser = New-Object System.Windows.Forms.FolderBrowserDialog
$null = $browser.ShowDialog()
$path = $browser.SelectedPath
这也是有关各自属性的文档 - https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog.selectedpath?view=net-5.0