清理自定义写入进度信息

时间:2016-03-07 23:07:23

标签: powershell console

我正在使用Write-Progress cmdlet在WinPE上的powershell(v5.0)命令窗口中执行diskpart时显示进度条。

$HDDDisk=0
$commands=@()
$commands+="select disk " + 0
$commands+="clean"$commands | out-string | diskpart  | Where-Object { $_.Length -gt 0 } | `
Foreach-Object { Write-Progress -Activity "Disk $HDDDisk" -Status $_ -Id 1}
Write-Progress -Activity "Disk $HDDDisk" -Status "Complete" -Completed

完成diskpart后,我使用Expand-WindowsImage cmdlet恢复Windows映像。 Expand-WindowsImage还使用write-progress来报告进度。

我遇到的问题是无法正确清理diskpart进程中的信息,并且在运行Expand-WindowsImage时显示信息显示为(重新输入),这非常令人困惑。

Disk 0
     DISKPART>
Operation
   Running
   [oooo

如何在启动Expand-WindowsImage cmdlet之前清理/删除diskpart写入进度信息?

由于

斯图尔特

1 个答案:

答案 0 :(得分:0)

您可以使用-currentOperation OuterLoop/InnerLoop分隔两个进度条。

像:

Foreach-Object { Write-Progress -Activity "Disk $HDDDisk" -Status $_ -Id 1 -currentOperation InnerLoop}
Write-Progress -Activity "Disk $HDDDisk" -Status "Complete" -Completed -currentOperation OuterLoop