我的用户每天都在手动备份一个巨大的文件。我通过创建DOS批处理脚本来自动执行此过程,但命令行窗口不显示此过程的缓慢进度。是否可以创建此流程的GUI版本,显示手动复制和粘贴大文件时显示的相同进度条?
答案 0 :(得分:1)
如果您逐个复制(或无论如何处理)文件,您可以执行此操作。
如果你使用通配符掩码复制文件,(复制c:\ * d:\),则不能
powershell中的Progressbars就是这样完成的:
$local:fileList = @( Get-ChildItem -Recurse -Path 'd:\_MEDIA\VIDEO' | Where-Object {$_.psIsContainer -eq $false} )
$local:fileTotalSize = $( $local:fileList | Measure-Object -Property 'Length' -Sum).Sum
$local:currentlyProcessedBytes = 0;
$local:onePercentSize = $local:fileTotalSize / 100
$local:progressActivity = 'Making backup'
ForEach ($file in $local:fileList ) {
Write-Progress -Activity $local:progressActivity -Status "Processing $($file.Name)" -PercentComplete $( [math]::Floor( $local:currentlyProcessedBytes / $local:onePercentSize) )
Write-Host "Working with file [$($file.FullName)]"
#work
#Placeholder for do some job with file
Start-Sleep -Milliseconds 300
$local:currentlyProcessedBytes += $file.Length
}
Write-Progress -Activity $local:progressActivity -Completed
有一个人做了chimera of robocopy ad powershell
如果您有一个大文件,请使用RoboCopy - 它将显示百分比
robocopy D:\_Media\Video d:\ "The.Boy.In.The.Striped.Pajamas.barm.*"