0

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

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

4

1 回答 1

1

同意 Mathias R. Jessen 的观点。

制作和使用 PowerShell 进度条在 PowerShell 内置帮助文件和整个网络中都有很好的记录。这是一篇关于“如何制作 PowerShell 进度条”的示例文章,其中包含几个示例

作者通过single的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 进度条的脚本。在此处查看此讨论和预构建示例:

为 DISM 或 ImageX 生成 GUI 进度条

提供的公认答案是一段很长的代码,太长了,无法在此处发布:

于 2019-04-15T21:00:50.487 回答