[玩转系统] Write-Progress (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:02:16 浏览:14 分类:玩电脑
Write-Progress (Microsoft.PowerShell.Utility)
Write-Progress
模块 :Microsoft.PowerShell.Utility在 PowerShell 命令窗口中显示进度条。
句法
Write-Progress
[[-Activity] <String>]
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
描述
Write-Progress
cmdlet 在 PowerShell 命令窗口中显示一个进度条,描述正在运行的命令或脚本的状态。您可以选择进度条反映的指示器以及进度条上方和下方显示的文本。
PowerShell 7.2 添加了 $PSStyle
自动变量,用于控制 PowerShell 如何使用 ANSI 转义序列显示某些信息。 $PSStyle.Progress
成员允许您控制进度视图栏渲染。
$PSStyle.Progress.Style
- 设置渲染样式的 ANSI 字符串。$PSStyle.Progress.MaxWidth
- 设置视图的最大宽度。默认为120
。最小值为 18。$PSStyle.Progress.View
- 具有值Minimal
和Classic
的枚举。Classic
是没有任何更改的现有渲染。Minimal
是单行最小渲染。最小
是默认值。
有关 $PSStyle
的更多信息,请参阅 about_ANSI_Terminals.md。
笔记
如果主机不支持虚拟终端,$PSStyle.Progress.View
会自动设置为 Classic
。
示例
示例 1:显示 For 循环的进度
for ($i = 1; $i -le 100; $i++ ) {
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i
Start-Sleep -Milliseconds 250
}
此命令显示 for
循环的进度,从 1 计数到 100。
Write-Progress
cmdlet 包括状态栏标题 Activity
、状态行和变量 $i
( for
循环),表示任务的相对完整性。
示例 2:显示嵌套 For 循环的进度
$PSStyle.Progress.View = 'Classic'
for($I = 0; $I -lt 10; $I++ ) {
$OuterLoopProgressParameters = @{
Activity = 'Updating'
Status = 'Progress->'
PercentComplete = $I * 10
CurrentOperation = 'OuterLoop'
}
Write-Progress @OuterLoopProgressParameters
for($j = 1; $j -lt 101; $j++ ) {
$InnerLoopProgressParameters = @{
ID = 1
Activity = 'Updating'
Status = 'Progress'
PercentComplete = $j
CurrentOperation = 'InnerLoop'
}
Write-Progress @InnerLoopProgressParameters
Start-Sleep -Milliseconds 25
}
}
Updating
Progress ->
[ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Progress
[oooooooooooooooooo ]
InnerLoop
此示例将进度视图设置为 Classic
,然后显示两个嵌套 for
循环的进度,每个循环均由进度条表示。
第二个进度条的 Write-Progress
命令包含将其与第一个进度条区分开来的 Id 参数。
如果没有 Id 参数,进度条将相互叠加,而不是一个一个地显示在另一个之下。
示例 3:搜索字符串时显示进度
# Use Get-WinEvent to get the events in the System log and store them in the $Events variable.
$Events = Get-WinEvent -LogName system
# Pipe the events to the ForEach-Object cmdlet.
$Events | ForEach-Object -Begin {
# In the Begin block, use Clear-Host to clear the screen.
Clear-Host
# Set the $i counter variable to zero.
$i = 0
# Set the $out variable to an empty string.
$out = ""
} -Process {
# In the Process script block search the message property of each incoming object for "bios".
if($_.message -like "*bios*")
{
# Append the matching message to the out variable.
$out=$out + $_.Message
}
# Increment the $i counter variable which is used to create the progress bar.
$i = $i+1
# Determine the completion percentage
$Completed = ($i/$Events.count) * 100
# Use Write-Progress to output a progress bar.
# The Activity and Status parameters create the first and second lines of the progress bar
# heading, respectively.
Write-Progress -Activity "Searching Events" -Status "Progress:" -PercentComplete $Completed
} -End {
# Display the matching messages using the out variable.
$out
}
此命令显示在系统事件日志中查找字符串“bios”的命令的进度。
PercentComplete 参数值的计算方法是将已处理的事件数 $i
除以检索到的事件总数 $Events.count
然后将该结果乘以 100。
示例 4:显示嵌套流程每个级别的进度
$PSStyle.Progress.View = 'Classic'
foreach ( $i in 1..10 ) {
Write-Progress -Id 0 "Step $i"
foreach ( $j in 1..10 ) {
Write-Progress -Id 1 -ParentId 0 "Step $i - Substep $j"
foreach ( $k in 1..10 ) {
Write-Progress -Id 2 -ParentId 1 "Step $i - Substep $j - iteration $k"
Start-Sleep -Milliseconds 150
}
}
}
Step 1
Processing
Step 1 - Substep 2
Processing
Step 1 - Substep 2 - Iteration 3
Processing
在此示例中,您可以使用 ParentId 参数来缩进输出,以显示每个步骤进度中的父子关系。
参数
-Activity
指定状态栏上方标题中的第一行文本。此文本描述了正在报告其进度的活动。
类型 :String
位置:0
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Completed
指示进度条是否可见。如果省略此参数,Write-Progress
将显示进度信息。
SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-CurrentOperation
指定进度条下方的文本行。此文本描述当前正在发生的操作。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Id
指定一个 ID,用于区分每个进度条与其他进度条。当您在单个命令中创建多个进度条时,请使用此参数。如果进度条没有不同的 ID,它们会叠加而不是按系列显示。不允许使用负值。
类型 :整数32
位置:2
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-ParentId
指定当前活动的父活动。如果当前活动没有父活动,则使用值 -1
。
整数32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-PercentComplete
指定已完成活动的百分比。如果完成百分比未知或不适用,请使用值 -1
。
整数32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-SecondsRemaining
指定活动完成之前预计剩余的秒数。如果剩余秒数未知或不适用,请使用值-1
。
整数32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-SourceId
指定记录的来源。您可以使用它来代替 Id,但不能与 ParentId 等其他参数一起使用。
类型 :整数32
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Status
指定状态栏上方标题中的第二行文本。此文本描述了活动的当前状态。
类型 :String
位置:1
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
输入
无
您无法将对象通过管道传输到此 cmdlet。
输出
无
此 cmdlet 不返回任何输出。
笔记
如果未出现进度条,请检查 $ProgressPreference
变量的值。如果该值设置为 SilentlyContinue
,则不会显示进度条。有关 PowerShell 首选项的详细信息,请参阅 about_Preference_Variables。
cmdlet 的参数对应于System.Management.Automation.ProgressRecord 类的属性。有关详细信息,请参阅 ProgressRecord 类。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag