我相信不少人会遇到这类情况,通常在执行一些大批量操作时,代码正在后台持续执行,你又没有为每个细节设置详尽的输出的话,你也不知道到底是脚本卡死了还是正在运行,因为没有任何响应反馈。

应对这种情况,要是我们给脚本创建一个进度条就可以避免以上这些可能产生的问题,如果你有留意过PowerShell更新帮助文档时的状态就会发现在下载更新文档时PowerShell会自动出现一个进度条。

为PowerShell创建进度条使用Write-Progress命令就可以很方便的做到,先来看下使用方法(因为代码比较长,我这里使用了换行符做了代码截断换行)。

for ($p=1; $p -lt 100; $p++) {Write-Progress -Activity "Starting..."`-PercentComplete $p`-CurrentOperation "$p% Finished"`-Status "Loding..."Start-Sleep 1
}

这个例子很简单的写了一个循环,从1开始一直循环到100,为了让效果明显,这里使用了Start-Sleep命令目的是为了在每次循环的时候停顿1秒钟,运行代码后就可以看到在PowerShell控制台里会显示一个以符号形式画出来的动态进度条状态。

这里我们用到了Write-Progress命令的几个参数和说明分别如下:

  • Activity: 在进度条的状态条最上方显示一行文字用来描述正在进行的活动内容。
  • PercentComplete: 用于显示所完成的百分比形态,如果数值设置为-1代表未知形态显示,就不会显示。
  • CurrentOperation: 在进度条的下方显示一行蚊子用来描述当前正在发生的情况。
  • Status: 显示当前活动的状态。

我们常见的进度条状态除了慢慢累积百分比直到变成100%完成目标外,还有一种是以倒计时形式存在的。为了展现倒计时形式的样子我们需要修改下我们之前的代码,把数值累加循环改成循环递减。

for ($p=100; $p -ge 0; $p--) {Write-Progress -Activity "Starting..."`-SecondsRemaining $p`-CurrentOperation "$p% Not Finished"`-Status "Loding..."Start-Sleep 1
}

让我们来看看运行后的样子。画面还是比较直观的可以让用户知道还剩余多少时间任务就可以完成了。

说实话,我个人还是挺喜欢在一些批量或者遍历操作的脚本中使用Write-Progress来创建进度条,毕竟无论是你本人还是别人再运行你写的脚本时,随着信息的不断输出同时屏幕上方附带有进度条信息提示,这带给使用者的感受也是不一样的。

从零开始学PowerShell(8)创建一个进度条相关推荐

  1. 从零开始学PowerShell(9)创建PowerShell对象

    我们之前有一篇文章写过如何获取对象的信息,但是从没有说过如何创建一个PowerShell对象.正巧也看到很多刚学PowerShell的朋友问起这个问题,今天就来说一说如何创建PowerShell对象. ...

  2. 从零开始学PowerShell(7)编写一个函数体

    我们已经熟悉了不少PowerShell命令并且学会了通过Get-Help帮助命令自寻去挖掘一个新命令的使用方法,今天是时候可以来讲下如何重用命令了. 在PowerShell控制台中,如果我们要重用之前 ...

  3. vue aplayer 进度条无法拖动_为 Vue 的惰性加载加一个进度条

    // 每日前端夜话 第412篇// 正文共:1800 字// 预计阅读时间:8 分钟 简介 通常用 Vue.js 编写单页应用(SPA)时,当加载页面时,所有必需的资源(如 JavaScript 和 ...

  4. bootstraptable treeGrid 懒加载_为 Vue 的惰性加载加一个进度条

    简介 通常用 编写单页应用(SPA)时,当加载页面时,所有必需的资源(如 JavaScript 和 CSS 文件)都会被一起加载.在处理大文件时,这可能会导致用户体验不佳. 借助 Webpack,可以 ...

  5. Android拖动进度条画面随动,ftk学习记录(一个进度条文章)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 首先.在開始今天的文章之前.我们还是给朋友们展示一下前面一段代码的执行效果.效果例如以下, w ...

  6. [html] 如何使用纯html制作一个进度条?

    [html] 如何使用纯html制作一个进度条? HTML中的progress () 元素用来显示一项任务的完成进度.虽然规范中没有规定该元素具体如何显示,浏览器开发商可以自己决定,但通常情况下,该元 ...

  7. html动态资源加载进度,JavaScript_快速解决js动态改变dom元素属性后页面及时渲染的问题,今天实现一个进度条加载过程 - phpStudy...

    快速解决js动态改变dom元素属性后页面及时渲染的问题 今天实现一个进度条加载过程,dom结构其实就是两个div 控制里层div的宽width属性,就能实现进度条往前走的效果. 我的进度条是显示下载文 ...

  8. 从零开始学视觉里程计——一个初学者教程

    从零开始学视觉里程计--一个初学者教程 目录 从零开始学视觉里程计--一个初学者教程 什么是里程计 什么是视觉里程计 为什么使用立体相机,或者为什么使用单目相机? 理论足够了,现在讨论算法 问题描述 ...

  9. 【shell实战】使用shell实现一个进度条

    前言 之前有小伙伴留言说,有没有那种花里胡哨的东西,比如进度条,今天他来了. 思路 1. 进度条的组成 进度条由 五个字符组成: 主进度条: # 花里胡哨的转圈圈: | \ - / #号用于生成进度: ...

最新文章

  1. /etc/inittab
  2. 从零开始学习jQuery (六) AJAX快餐【转】
  3. C++ STL Pair
  4. 前端学习(3082):vue+element今日头条管理-页面布局
  5. 本地运行vue.js项目,如何更改调试的默认端口?
  6. Optional类的使用
  7. VS下如何调试多线程
  8. java周边技术文摘
  9. [转]Allegro shape敷铜 显示设置
  10. python写错了如何撤销-Python集成开发工具Pycharm的使用方法:复制,撤销上一步.......
  11. Extmail企业邮箱构建指南
  12. Dynamics AX2012 标准权限控制工作原理
  13. 问题分析与解决——ADSL错误代码(转)
  14. Java基础语法总结
  15. STVD环境下开发STM8,如何查看工程占用的Flash、EEPROM、RAM的情况
  16. 金山毒霸修复dns服务器,DNS被劫持或提示配置错误,该怎么解决
  17. Google登录授权详细过程
  18. C语言获取SYSTEMTIME
  19. cosine similarity 余弦相似度
  20. HDU 1873 优先队列

热门文章

  1. 我的世界python写游戏_快来试试Python写的游戏《我的世界》
  2. 参考文献中杂志名字问题
  3. java中选择排序和冒泡排序_Java选择排序就是比冒泡排序牛「具体详情,请看此文」...
  4. 拉丁超立方抽样matlab代码_想要数据分析更快?超良心的笔记本/台式电脑配置推荐!...
  5. P3146 [USACO16OPEN]248 G(python3实现)
  6. 1.10 编程基础之简单排序 06 整数奇偶排序 python
  7. 需要vmwareinstalldisk上的文件vmnet_手机上一键就能进行PDF与其他文件的相互转换,果然厉害到不行...
  8. css隐藏输入框的光标
  9. error: undefined reference to `_imp__glXXX@XX'
  10. C++|Qt最简单的http的get请求