PowerShell命令输出的控制方法

系统 Windows
在我们了解PowerShell提供用来写数据的cmdlets之前,理解PowerShell是如何处理输出的很重要。本文为大家清楚的描述了PowerShell的基本概念,并且讲解了如何进行输出控制。

在编写生产质量函数的时候,以前有关Windows PowerShell的文章有2/3都是介绍输入和错误处理的。现在让我们来看一下***一个因素:输出。

脚本和命令的输出一直繁琐且不一致,甚至在同一个工具里也是一样。用户对于这些天我们一直使用的awk,sed 或grep一类的工具,并不是十分了解,围绕着输出的变化, 提供最想得到的数据。一个Windows PowerShell主要租户是为了拥有用户期望的输出类型,同时避免解析文本的需要。那么PowerShell是如何处理的呢?答案是肯定的,正如我在先前文章当中所解释的那样,是什么使Windows PowerShell如此的特别?

在我们了解PowerShell提供用来写数据的cmdlets之前,理解PowerShell是如何处理输出的很重要。大多数Shell有一个数据流的概念,最常见的是stdout和stderr。PowerShell有一个类似的概念,我们称它为管道。

在PowerShell里,对于数据来说有三个基本的通道:

  1. Output -- 这就是通常所谓的管道。在那里数据将在命令间传递。
  2. Host – 这个被直接写给控制台.
  3. Error --这个被直接写给控制台,但是也会储存在$error变量中。

PowerShell对于写数据有许多cmdlets,主要有两个:

Write-Host – 这是一个简单的cmdlet。它通过管道直接写数据并传给控制台。如果你不想提供多余管道的信息给用户,那么它是非常有用的。

Write-Output –它用来把指定数据直接写入管道。我说的‘指定’,是因为如果你不指定任何值的话,那么将会把默认值写入管道。

其它的方式写cmdlets:

  1. Write-Debug -- 如果$DebugPreference被设为‘continue’,则将调试语句写入到控制台。
  2. Write-Error – 直接写Error流。
  3. Write-EventLog – 写事件日志。
  4.  Write-Progress – 这里你可以为用户写一个进度栏输出到屏幕。这通常用在很长的错误命令中,以跟踪其处理过程。
  5. Write-Verbose – 如果$VerbosePreference 被设为“continue”,则写入主机。
  6. Write-Warning – 使用一个“警告”标签来写入主机

正如你所了解的,给用户提供反馈的方式有很多种。成功的关键就是正确的使用你的工具。例如,你打算通过使用write-host,而不是使用write-output来给用户显示消息。为什么呢?因为你不想在用户弄坏你带有标记的输出数据,因此按照用户所期望的目标、且保持数据的完整性是十分重要的。使用没有多余信息的管道,用户能够访问与预期属性一致的数据,而不需要再解析数据。

换句话说,一个没有多余信息的管道可以让使用者更加高兴。

【编辑推荐】

  1. Windows PowerShell的命令学习大全
  2. PowerShell与SSH/bash的对比点评
  3. 实战Windows7系统的Powershell命令
  4. 10月TIOBE编程语言排行榜发布 PowerShell跌落谷底
  5. Windows PowerShell的12项酷功能
责任编辑:张浩 来源: TT中国
相关推荐

2013-02-21 17:54:12

PowerShell入PowerShell命

2013-07-23 15:10:34

PowerShell

2017-09-12 14:46:54

2023-05-12 07:08:09

PowerShellWindows操作系统

2013-02-18 08:34:45

powershell

2011-01-05 10:30:42

活动目录Powershell

2014-08-11 11:12:35

Jansi

2010-10-22 11:01:42

Windows Pow

2015-10-12 11:37:07

2009-07-03 08:38:44

微软Windows 7PowerShell

2010-11-04 14:01:59

PowerShell

2012-09-20 10:08:17

PowerShell

2010-05-21 18:30:02

2013-09-10 10:34:49

PowerShell

2013-08-27 15:03:18

PowerShell

2010-07-21 16:30:00

telnet程序

2011-07-11 11:05:09

Windows控制台

2011-02-14 10:21:04

Windows PowWMI

2022-11-01 16:19:47

Powershell开源命令

2023-09-21 07:06:17

PSDriveProvider
点赞
收藏

51CTO技术栈公众号