Powershell脚本 - 增加start-job scriptblock中的进度条

时间:2014-04-29 15:49:54

标签: powershell progress-bar argument-passing start-job

我是PowerShell的新手(大约1周),我正在尝试为我们的服务台创建一个导入和导出打印机的工具。该工具运行良好,除了表单在运行代码时冻结。

为了减轻冻结,我发现将其作为一项工作来完成任务,但是我遇到了2个问题。

  1. 由于工作完成,我无法让进度条增加1步。
  2. 我无法将变量传递给它。 (我并不担心这一点,因为有大量的信息,我只需要弄清楚它的语法。如果你也可以帮助它,那将是很好的。)

    start-job -scriptblock {
    C:\Windows\system32\spool\tools\PrintBrm.exe -b -f \\filestore\$EXPORTPRINTERS.printerExport
    $progressbarexportprinters.PerformStep()
    $progressbarexportprinters.TextOverlay = "Printer Export Complete"
    }
    
  3. 我找到了解决方案。表格仍然冻结,但我可以在进度条上显示运动。这将是足够好的。

    C:\Windows\system32\spool\tools\PrintBrm.exe -r -f \\filestore\$EXPORTPRINTERS.printerExport | out-string -Stream | foreach-object {
        $richTextBox1.lines = $richTextBox1.lines + $_
        $richTextBox1.Select($richTextBox1.Text.Length, 0)
        $richTextBox1.ScrollToCaret()
        $progressbaraddprinters.PerformStep()
    }
    

0 个答案:

没有答案