如下说明是翻译: help write-progress 产生的帮助信息.
译者: Edengundam(马涛)
Write-Progress
大纲
在Windows PowerShell命令窗口中显示一个进度条.
语法
Write-Progress [-activity] <string> [-status] <string> [[-id] <int>] [-percentComplete <int>] [-secondsRemaining <int>] [-currentOperation <string>] [-parentId <int>] [-completed] [-sourceId <int>] [<CommonParameters>]
详细描述
在Windows PowerShell命令窗口中显示一个进度条. 进度条是否被显示, 取决于变量$ProgressPreference. 查看该变量取值, 输入 $ProgressPreference. 该变量的合法取值为: SilentlyContinue, Continue, Stop 和 Inquire. 如果该变量设置为SilentlyContinue, 控制台不会显示进度条. 在会话中设置该变量, 输入 $ProgressPreference = "<value>". 通过为Write-Progress提供运行命令或脚本的运行状态数据, 可以在控制台窗口中显示一个用于指示进度的进度条. (译者补: 使用Write-Progress监控的对象被称为活动Activity, 因为本单词对应汉语稍有晦涩, 次翻译较为欠妥)
参数
-activity <string>
指定一个字符串, 描述被该进度条指示的活动. 该字符串显示为进度条的第一标题.
强制参数?
|
true
|
参数位置?
|
1
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-status <string>
指定一个字符串, 描述被该进度条指示活动的当前状态. 该字符串显示为进度条的第二标题.
强制参数?
|
true
|
参数位置?
|
2
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-id <int>
指定此进度记录的活动标识符.
强制参数?
|
false
|
参数位置?
|
3
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-percentComplete <int>
指定该活动总的完成百分比. 使用-1表示该百分比未知或暂时不可用.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
-1
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-secondsRemaining <int>
指定该活动的预计剩余时间. 如果该值无法确定或暂时不可用, 请指定-1作为参数.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
-1
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-currentOperation <string>
描述当前执行的操作.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
-1
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-parentId <int>
当前活动的父活动描述符. 如果当前活动没有父活动, 请指定-1作为参数.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
-1
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-completed <SwitchParameter>
指示该进度条是否显示. 如果设置为false, 只显示进度信息.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-sourceId <int>
指定记录的源ID
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
输入类型
ProgressRecord对象.
返回类型
不向管道输出任何对象
注意
更多信息, 输入"Get-Help Write-Progress -detailed".需要技术信息, 输入"Get-Help Write-Progress -full".
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
此命令的参数对应于软件开发包(SDK)中的ProgressRecord类中的属性.
例1
C:/PS>for($i = 1; $i -lt 101; $i++ )
{for($j=0;$j -lt 10000;$j++) {} write-progress "Search in Progress" "% Complete:" -perc $i;}
此命令显示循环的进度.
例2
C:/PS>for($i = 1; $i -lt 101; $i++ ) {write-progress Updating progress-> -perc $i} for($i = 1; $i -lt 101; $i++ )
{ write-progress Updating progress -percentcomplete $i -id 1}
此例子显示两个连续循环的执行进度.
Updating
progress
[oooooooooooooooooo ]
Secondary updating
Secondary Progress
[oooooooooooooooooo ]
例3
C:/PS>$events = get-eventlog -logname system
$events | foreach-object -begin {clear-host;$i=0;$out=""} `
-process {if($_.message -like "*bios*") {$out=$out + $_.Message};
$i = $i+1;`
write-progress -activity "Searching Events" `
-status "Progress:" -percentcomplete ($i/$events.count*100)} `
-end {$out}
此命令会显示搜索系统事件中含有”bios”字符串的进度. 命令的第一行, Get-EventLog cmdlet用来从系统日志中, 读取和存储事件到变量$events. 第二行, 变量$events通过管道传递给ForEach-Object cmdlet. 在处理的开始, Clear-Host函数用来清除当前屏幕的信息, 计数变量$i设置为0, 输出变量$out被设置为空串. 在第三行ForEach-Object cmdlet的Process脚本块中, $_表示的输入对象上message属性,先被检查是否包含”bios”字符串.如果该对象包含字符串, 则该信息被添加到变量$out中. 命令的第四行, 每个被处理的事件, 都会使$i变量加1. 接下来, 提供三个参数来调用Write-Progress cmdlet.前两个参数为, 活动和状态, 出现在进度条的上端标题信息. 参数PercentComplete的取值为计算当前处理的事件数处以总事件数再乘以100. 最后一行, ForEach-Object cmdlet的End参数用来将存储在$out变量中, 包含字符串”bios”的信息输出.
相关链接
Write-Verbose
Write-Error
Write-Host
Write-Debug
Write-Output
Write-Warning