Write-Progress 帮助信息

本文介绍Windows PowerShell中的Write-Progress命令,展示如何在命令窗口显示进度条并跟踪任务执行情况。文章提供了详细的语法说明和多个实用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下说明是翻译: 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 cmdletProcess脚本块中, $_表示的输入对象上message属性,先被检查是否包含”bios”字符串.如果该对象包含字符串, 则该信息被添加到变量$out. 命令的第四行, 每个被处理的事件, 都会使$i变量加1. 接下来, 提供三个参数来调用Write-Progress cmdlet.前两个参数为, 活动和状态, 出现在进度条的上端标题信息. 参数PercentComplete的取值为计算当前处理的事件数处以总事件数再乘以100. 最后一行, ForEach-Object cmdletEnd参数用来将存储在$out变量中, 包含字符串”bios”的信息输出.
 
相关链接
Write-Verbose
Write-Error
Write-Host
Write-Debug
Write-Output
Write-Warning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值