Winforms Powershell-浏览文件夹-更好的方法?

Winforms Powershell-浏览文件夹-更好的方法?,winforms,powershell,Winforms,Powershell,我正在使用一个脚本,提示用户选择一个或多个文件夹。代码如下 $wrkfolder = "C:\MyPC\WorkingFolder" #workfolder starting location $app = New-Object -ComObject shell.Application # Display Browse for File to select a folder or ALL folders $folder = $app.BrowseForFolder(

我正在使用一个脚本,提示用户选择一个或多个文件夹。代码如下

$wrkfolder = "C:\MyPC\WorkingFolder"              #workfolder starting location

$app = New-Object -ComObject shell.Application

# Display Browse for File to select a folder or ALL folders
$folder = $app.BrowseForFolder(0,"Select Folder -- Cancel to select ALL",0,$wrkfolder)

    if ($folder.self.path -ne "") {
        $fldr = $folder.Self.Path
        $fldrName = $folder.Self.Name
        } 
当前,这会提示用户使用文件夹浏览输入对话框,如果用户选择取消,它将选择$wrkfolder中的所有文件夹。或者,如果他们选择一个文件夹,它将返回该文件夹。如果用户关闭对话框,它将返回$null(这与选择Cancel相同)

我希望脚本允许用户选择一个文件夹,选择多个文件夹,选择所有文件夹,取消按钮实际关闭对话框并返回一个值,然后我可以退出脚本


在不重新发明此表单上的控制盘的情况下,是否有一种简单的方法可以通过浏览输入文件夹对话框提示用户&允许他们选择1+个文件夹、所有文件夹或取消脚本?必须有一个更好的方法来做这件事,而不是我目前所拥有的

除非您正在运行PowerShell V3测试版,否则这对您没有帮助,但为了将来参考,您可以使用
Out-GridView的
new
PassThru
参数,例如:

Get-ChildItem -Directory | Out-GridView -PassThru | ...

Out GridView
允许多选,您也可以通过取消按钮取消整个管道操作。

除非您正在运行PowerShell V3 beta版,否则这对您没有帮助,但为了将来参考,您可以使用
Out GridView的
新的
PassThru
参数,例如:

Get-ChildItem -Directory | Out-GridView -PassThru | ...
Out GridView
允许多选,您也可以通过取消按钮取消整个管道操作