是否可以从powershell打开资源管理器窗口并将在资源管理器中选择的路径存储到变量?
从powershell打开资源管理器窗口
PS C:>资源管理器
答案 0 :(得分:11)
也许这个脚本是你想要的:
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
答案 1 :(得分:4)
我发现在所选答案中使用反射有点尴尬。以下链接提供了更直接的方法
复制并粘贴相关代码:
Add-Type -AssemblyName System.Windows.Forms
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
[void]$FolderBrowser.ShowDialog()
$FolderBrowser.SelectedPath
答案 2 :(得分:1)
以上对我不起作用。使用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."
}
}
以防其他人遇到同样的问题。
答案 3 :(得分:0)
只是想发布一个附录,我相信中间缺少一个管道|
:
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
和:
Out-Null
答案 4 :(得分:0)
这是打开资源管理器对话框窗口的解决方案,要求用户选择文件夹。然后将文件夹路径存储在名为“ path”的变量中:
Add-Type -AssemblyName System.Windows.Forms
$browser = New-Object System.Windows.Forms.FolderBrowserDialog
$null = $browser.ShowDialog()
$path = $browser.SelectedPathode
答案 5 :(得分:0)
只有在我将“.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