如下说明是翻译
: 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