所以我正在使用powershell使用命令组合进行一些文件操作。
例如:
import-csv $DataFile -Delimiter "`t" | ConvertTo-Csv -Delimiter '|' -NoTypeInformation | % { $_ -replace '"', ""} | out-file $PipeFile
(get-content $DataFile -ReadCount 1000) -replace '\x00','' | set-content $DataFile
以及更多文件操作。
这些操作发生在需要40-60分钟才能执行的大型数据文件上。因此,我们希望看到某种“进度条或进度表”,这样我就可以确定已完成和未完成的数量。或者可以放在屏幕上的详细信息?
写作进步是我认为可以帮助我的东西,但是,我如何解释它更适合“循环”。
任何指针都表示赞赏。
答案 0 :(得分:0)
Write-Progress
更适合循环,但您仍然可以使用它。
我刚刚尝试编辑您的代码,以便它使用foreach循环来写出进度。
您必须在安全的环境中进行测试。
# Grabbing pipe data
# ------------------
$PipeData = Import-CSV $DataFile -delim "`t" | ConvertTo-Csv -delim '|' -notype
ForEach ($line in $PipeData)
{
$New_PipeData += $line -replace '"', ""
Write-Progress `
-id 1 `
-Activity "Creating New Pipe Data" `
-Status "Converting..." `
-PercentComplete ($progress/100))
$progress += $line.length
}
$New_PipeData | Out-File $PipeFile
# Writing out to data file
# ------------------------
ForEach ($block in ((gc $DataFile -ReadCount 1000) -replace '\x00',''))
{
$block | set-content $DataFile
Write-Progress `
-id 2 `
-Activity "Outputting blocks" `
-Status "Writing..." `
-PercentComplete ($progress/100)
$progress += $block.length
}
您很有可能需要调整它以满足您的需求。