1

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

$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
        } 

目前,它会通过文件夹浏览输入对话框提示用户,如果用户选择 CANCEL,它将选择$wrkfolder 中的所有文件夹。或者,如果他们选择一个文件夹,它将返回该文件夹。如果用户关闭对话框,它会返回 $null(这与选择取消相同)。

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

无需在此表单上重新发明轮子,是否有一种简单的方法可以通过浏览输入文件夹对话框提示用户并允许他们选择 1+ 个文件夹、所有文件夹或取消脚本?必须有比我迄今为止所拥有的更好的方法来做到这一点。

4

1 回答 1

1

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

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

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

于 2012-05-07T15:49:53.063 回答