负责做网站的叫什么公司,直播网站建设,wordpress 评论嵌套,网页视频怎么下载到ios如果你需要编写一些PowerShell脚本#xff0c;尤其在处理一些相对复杂的任务时#xff0c;你可能希望添加进度条的功能#xff0c;以便随时可以了解进展情况。Write-Progress 这个命令可以帮助你完成简单的需求#xff0c;请参考官方文档即可#xff0c;但下图一个示例尤其在处理一些相对复杂的任务时你可能希望添加进度条的功能以便随时可以了解进展情况。Write-Progress 这个命令可以帮助你完成简单的需求请参考官方文档即可但下图一个示例它会同时进行多个任务并且能每个任务独立更新进度。范例代码如下请在PowerShell 7.x 以上版本运行测试。using namespace System.Collectionsfunction Test-Progress {$files Get-ChildItem | Select-Object -Property BaseName | Where-Object { $_.BaseName.length -gt 0 } | Select-Object -First 10$origin {}$index 1$files | ForEach-Object { $origin.($_.BaseName) {Id $indexActivity {0,30} -f $_.BaseNameStatus Pending...PercentComplete 1 # 这里设置为0的话有点问题那个进度条看起来是100%} }$sync [hashtable]::Synchronized($origin)$job $files | ForEach-Object -AsJob -Parallel {$copySync $using:sync$process $copySync.($_.BaseName)1..100 | ForEach-Object {$process.Status Processing... $_ Start-Sleep -Milliseconds (Get-Random -Maximum 300 -Minimum 100)$process.PercentComplete $_}$process.Status Done}while ($job.State -eq Running) {$sync.Keys | Foreach-Object {if (![string]::IsNullOrEmpty($sync.$_.keys)) {$param $sync.$_ Write-Progress param}}Start-Sleep -Seconds 0.1}
}如果要做多线程脚本建议用Powershell 7.0以上版本它的Foreach-Object已经直接支持Parallel的方式。如果在早期版本也是能够实现的但需要多写很多额外的代码。