在PowerShell控制台中捕获并打印7-Zip的提取进度

问题描述 投票:0回答:1

我有一个PowerShell脚本,其他东西,使用7-Zip提取文件。

"Starting decompression of [$filePath]..."
& $7ZipPath "x" $filePath "-o$extractionPath" "-aos" | Out-Host

我一直在将Out-Host切换到Out-Null,因为它看起来有点凌乱,我现在想要实现的目标 - 我知道如果我添加-bsp1我可以获得提取进度 - 但它每次引入7z并将每个更新的百分比放在一条单独的线,看起来有点乱。

我的问题是:有没有办法捕获-bps1的进度百分比,并以更紧凑的方式在控制台中打印 - 进度条还是只有一行文本和更新百分比?

powershell console 7zip
1个回答
0
投票

我管理了我想要的东西:

"Extracting [$filePath]..."
& $7ZipPath "x" $filePath "-o$extractionPath" "-aos" "-bsp1" | out-string -stream | Select-String -Pattern "\d{1,3}%" -AllMatches | ForEach-Object { $_.Matches.Value } | foreach {
    [System.Console]::SetCursorPosition(0, [System.Console]::CursorTop) 
    Write-Host "Progress:" $_ -NoNewLine
}
© www.soinside.com 2019 - 2024. All rights reserved.