【问题标题】:Powershell - browse for folder - a better way to do this?Powershell - 浏览文件夹 - 更好的方法?
【发布时间】:2012-05-07 14:51:30
【问题描述】:

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

$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 个以上文件夹、所有文件夹或取消脚本?必须有比我迄今为止所拥有的更好的方法来做到这一点。

【问题讨论】:

    标签: winforms powershell


    【解决方案1】:

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

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

    Out-GridView允许多选,也可以通过取消按钮取消整个流水线操作。

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 2018-04-22
      • 2017-07-10
      • 1970-01-01
      • 2010-11-21
      相关资源
      最近更新 更多