类似this question,运行下面的代码浏览器对话框不会与所有正确的按钮出现,但选择面积usally显示可用的文件夹后丢失:通话的FolderBrowserDialog
[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
$d = New-Object Windows.Forms.FolderBrowserDialog
$d.ShowDialog()
类似this question,运行下面的代码浏览器对话框不会与所有正确的按钮出现,但选择面积usally显示可用的文件夹后丢失:通话的FolderBrowserDialog
[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
$d = New-Object Windows.Forms.FolderBrowserDialog
$d.ShowDialog()
我遇到这个问题了一会儿回来,发现在MSDN论坛上以下COM解决方法:
$app = new-object -com Shell.Application
$folder = $app.BrowseForFolder(0, "Select Folder", 0, "C:\")
if ($folder.Self.Path -ne "") {write-host "You selected " $folder.Self.Path}
我相信这是在MTA线程中运行PowerShell的问题。您可以在STA(单线程单元)模式下运行版本2的CTP,并且它将提取正确的文件夹选择。它确实将菜单拉到shell窗口后面。
我先在Vista上用CTP2试过,我可以在STA模式下使用它。在XP的V1,我无法得到这个工作。 – 2008-10-19 20:03:15
STA的限制是有道理的。 。 。急切地等待PS v2的发布版本;) – 2008-10-19 20:21:07
仅供参考,如果你正在寻找做Windows窗体的东西,有一个产品目前缺货,会做Windows窗体的PowerShell的(该Admin Script Editor)和Sapien的是工作的一个Forms Designer(在PowerScripting Podcast公布),这可能为您的脚本消除一些这些问题。
如果任何人的兴趣,这就是我使用它:HTTP:// stackoverflow.com/questions/182573/powershell-cli-or-gui-which-do-you-need-or-prefer#216936 – 2008-10-21 15:09:07