office

位置:IT落伍者 >> office >> 浏览文章

PowerShell中Write族cmdlet的介绍和使用


发布日期:2019年04月15日
 
PowerShell中Write族cmdlet的介绍和使用
Write相关的命令大都是和宿主相互交互的例如输出调试信息输出错误对象显示进度信息控制输出效果等

在很多时候我们希望能够将一些信息以特殊的颜色或背景色输出在PowerShell的控制台中我们可以使用WriteHost命令来实现这个功能参数ForegroundColor用于指定字体颜色BackgroundColor用于指定背景的颜色例如

PS C:\> WriteHost BackgroundColor Black ForegroundColor Red Hello World!

Hello World!

如果你记不住有哪些颜色该怎么办呢?很简单只需要在该参数后面输入一个不存在的颜色即可例如

PS C:\> WriteHost BackgroundColor NoSuchColor

WriteHost : Cannot bind parameter BackgroundColor Cannot convert value NoSuchColor to type SystemConsoleColor

due to invalid enumeration values Specify one of the following enumeration values and try again The possible enumerat

ion values are Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta DarkYellow Gray DarkGray Blue Green Cy

an Red Magenta Yellow White

At line: char:

+ WriteHost BackgroundColor<<<< NoSuchColor

我们可以看到PowerShell的错误提示信息已经包含该参数的所有合法取值利用这个办法在很多时候都可以避免去查看手册或查阅其他资料来确定参数所支持的值

WriteDebugWriteWarning和WriteVerbose是三个非常类似的命令它们都是向控制台输出一条消息它们主要为了脚本编写者能够更加灵活的控制输出传统的shell和脚本语言经常通过向屏幕打印一些调试信息来帮助编写者排除脚本的错误PowerShell虽然提供了强大的调试功能还通过提供WriteDebug为大家保留了利用打印消息来调试这一经典方法的功能

在进行拷贝操作时如果某个已经存在的话可能并不希望停止拷贝操作但是期待着PowerShell能够提供一个警告信息此时使用WriteVerbose如果使用过压缩类软件的话我们可能会关心压缩的时候究竟哪些文件被打包了这时候我们往往希望一个程序执行时线程更加详细的消息我们可以利用WriteVerbose来达成这个目的

这几个Write命令实际使用频率不高 因此我将它们放到以后专门介绍如何编写健壮的脚本章节中

如果您正在编写一个拷贝文件或执行安装的脚本提供一个进度条将会使用户再等待脚本执行时获得更好的体验PowerShell的设计人员已经为我们想到了这些细节可以使用WriteProgress来完成这样的操作

让我们来看一个最简单的进度条模型

PS C:\> for ($i = ; $i lt ; $i++) { WriteProgress Activity Learning PowerShell Status Percentage: $i PercentComplete $i; StartSleep Milliseconds }

你将会在屏幕上看到

Learning PowerShell

  Percentage:

  [ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo               ]

我们使用参数Activity来为整个的进度条设置一个名称(活动的名称)这里我们定义为Learing PowerShell参数Status用于指示在整个过程中当前执行的状态这里我们简单的提示了当前完成的百分比

               

上一篇:VB连接Excel文件

下一篇:拼接的字符串导入EXCEL