PowerShell显示进度条
在运行脚本的时候,如果脚本运行时间较长,就会不知道脚本的运行状况如何,如果在运行过程中有一个进度显示,那将会方便很多。在PowerShell中,通过使用“Write-Progress”命令可以在窗口中显示进度栏,描绘正在运行的命令或脚本的状态。
$servers = get-content d:\serverlist.txt $i=0 foreach ($server in $servers) { if ($server -ne $null) {} $i=$i+1 $w=$i.tostring() + '/' + $servers.count.tostring() Write-Progress -Activity "进度显示" -status "正在处理 $server,请耐心等待,$w" -percentcomplete ($i/($servers.count)*100) gwmi win32_computersystem -Credential administrator -computer $server } |
上面脚本的目的是获取远程计算机的系统信息,在运行该脚本的时候,会弹出窗口显示脚本的执行进度。
Write-Progress 命令主要包含了如下几个常用参数:
- Activity :指定状态栏上方标题中的第一行文本。此文本描述正在报告其进度的活 动。
- Status :指定状态栏上方标题中的第二行文本。此文本描述活动的当前状态。
- Percentcomplete :指定已完成的活动的百分比。如果完成百分比未知或不适用,请使用值 -1。
显示进度条,主要是如何显示其进度百分比。在此例中,“$i”表示正在处理第几个计算机,需要处理的计算机总数为“$servers.count”,则其百分比表示为:$i/($servers.count)*100。
“$w”主要是通过“当前第N个/总数”的形式显示一个当前进度,使之清晰明了。