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

时间:2012-05-07 14:51:30

标签: 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(0,"Select Folder -- Cancel to select ALL",0,$wrkfolder)

    if ($folder.self.path -ne "") {
        $fldr = $folder.Self.Path
        $fldrName = $folder.Self.Name
        } 

目前,提示用户使用文件夹浏览输入对话框,如果用户选择取消,则会在$ wrk文件夹中选择全部文件夹。或者,如果他们选择单个文件夹,它将返回该文件夹。如果用户关闭对话框,则返回$ null(与选择Cancel相同)。

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

如果不重新发明此表单上的滚轮,是否有一种简单的方法可以通过浏览输入文件夹对话框提示用户&允许他们选择1个以上的文件夹,所有文件夹还是取消脚本?必须有一个比我到目前为止更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

除非您运行的是PowerShell V3测试版,否则无法帮助您,但为了将来参考,您可以使用Out-GridView's新的PassThru参数,例如:

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

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