是否可以将Windows类型进度栏添加到运行Dism的Powershell脚本中?

时间:2019-04-15 15:47:08

标签: powershell progress-bar dism

我正在尝试将Windows类型进度条添加到运行Dism的Powershell脚本中。我在使用win32_service时遇到困难。有人知道怎么做吗?

dism / Apply-Image /ImageFile:Z:\path\wim.wim / Index:1 / ApplyDir:C:\

1 个答案:

答案 0 :(得分:0)

同意Mathias R. Jessen的观点。

在PowerShell内置帮助文件中以及在整个Web上,制作和使用PowerShell进度栏是有据可查的。这是一篇有关'How to Make a PowerShell Progress Bar'

的示例的文章

作者提供并通过gif显示

For ($i=0; $i -le 100; $i++) {
    Start-Sleep -Milliseconds 20
    Write-Progress -Activity "Counting to 100" -Status "Current Count: $i" -PercentComplete $i -CurrentOperation "Counting ..."
}

和嵌套的进度条。

For ($i=0; $i -le 100; $i++) {
    Start-Sleep -Milliseconds 1
    Write-Progress -Id 1 -Activity "First Write Progress" -Status "Current Count: $i" -PercentComplete $i -CurrentOperation "Counting ..."

    For ($j=0; $j -le 100; $j++) {
        Start-Sleep -Milliseconds 1
        Write-Progress -Id 2 -Activity "Second Write Progress" -Status "Current Count: $j" -PercentComplete $j -CurrentOperation "Counting ..."
    }
}

还有,您使用WQL与内置PowerShell cmdlet来查看服务的任何原因是什么?

Get-Service | Where-Object {$_.Status -eq "Running"}

以及为什么要使用进度条,因为return是立即返回的,并且只输出名称?你可以做的...

(Get-Service | Where-Object {$_.Status -eq "Running"}).Name

Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object -Property Name

每个人都会有非常快的回报,进度条没有意义,除非您有意使用Start-Sleep cmdlet放慢进度条,但这应该没有什么理由。

如果您正在寻找带有DISM进度条的脚本。在此处查看此讨论和预先构建的示例:

Generate a GUI progress bar for DISM or ImageX

提供的可接受答案是一长段代码,太长了,无法在此处发布: