$destinationFolder = "C:\Users\Jimmy\Desktop\Saves"
$rootFolder = "C:\Users\Jimmy\Desktop\test"
$subFolder = "\sales"
$fileName = "hello.txt"
$Dir = get-childitem $rootFolder |
select -first 10 |
?{ $_.PSIsContainer } |
Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) }
[array]::Reverse($Dir)
$Dir | format-table FullName
Foreach ($i in $Dir){
if(Test-Path $($i.FullName + $subFolder + "\" + $fileName)){
#echo $($i.FullName + $subFolder)
get-childitem $($i.FullName + $subFolder) |
where {$_.Name.ToLower() -eq $fileName.ToLower()} |
Copy-Item -Destination $destinationFolder
echo $("just copied " + $fileName + " from " + $i.FullName.Trim())
break;
}else{
echo $("Could not find " + $fileName + " in " + $i.FullName.Trim())
}
}
我通常使用此脚本将大文件从一个位置复制到另一个位置。我想添加一个进度条,这样我就可以看到正在复制的文件等。
我想添加一个write-progress [ooooo ]
类型的东西,但我不确定该怎么做。
答案 0 :(得分:1)
用以下内容替换你的foreach语句:
$i=1
$dir| %{
[int]$percent = $i / $dir.count * 100
Write-Progress -Activity "Copying ... ($percent %)" -status $_ -PercentComplete $percent -verbose
copy $_.fullName -Destination $destinationFolder
$i++
}