技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

PowerShell管道入门教程

来源:技术员联盟┆发布时间:2017-07-22 12:07┆点击:

  1. 管道(pipeline)是什么

  在Shell中一个重要的基本概念就是管道(pipeline),即在一组命令中,输出的命令结果成为下一个命令的输入参数。管道的概念与真实生活中的生产线比较相似:在不同的生产环节进行连续的再加工,如下图例子:

PowerShell管道入门教程 三联

  “Get-ChildItem”意思是获取当前路径的所有项目,“|Where-Object {$_.Length -gt 200}”意思是查看上一步结果,取所有长度大于200的项目,“|Sort-Object -Descending Name”意思是查看上一步结果,按照Name进行倒叙排列。

  在PowerShell中,使用管道符号(|)来划分管道中的每个命令,上述例子说明了管道的强大功能,同时PowerShell在管道中传递的是高保真对象,不仅仅是文本描述。

  下面主要给大家介绍一下常用的管道处理命令。

  2. Where-Object:过滤列表项或命令输出结果

  可以使用Where-Object(别名是where和?)从列表或者命令输出结果中过滤选择你需要的项目。

  对于输入的每一项,Where-Object都会根据{}中定义的脚本块对输入进行计算,如果返回True,则输出,否则不输出。如下例子:

PowerShell管道入门教程

  {}表示一个脚本块,可以输入一系列PowerShell命令,其中$_代表当前输入对象,在这个例子中,$_就代表一个文件项目。-gt是比较操作符,意思是大于,关于比较操作符的介绍如下:

  PowerShell中比较操作符是用于对表达式进行比较的。默认情况比较操作符不区分大小写,如果想要区分,需要使用-C前缀,不需要区分的,使用-I前缀。

PowerShell管道入门教程

  所有可用的比较操作符如下表格:

操作符

 

意义

 

返回True的例子

 

-eq

 

相等符

 

10 -eq 10

 

-ne

 

不相等符

 

10 -ne 9

 

-ge

 

大于等于操作符

 

10 -ge 9

 

-gt

 

大于操作符

 

10 -gt 9

 

-lt

 

小于操作符

 

10 -lt 11

 

-le

 

小于等于操作符

 

10 -le 11

 

-like

 

相似操作符

 

"Bob" -like "*ob"

 

-notlike

 

非相似操作符

 

"Bob" -notlike "1*ob"

 

-match

 

匹配操作符

 

"Bob" -match "B*ob"

 

-notmatch

 

非匹配操作符

 

"Bob" -notmatch "123*"

 

-contains

 

包含操作符

 

"Bob","Bob1" -contains "Bob"

 

-notcontains

 

非包含操作符

 

"Bob","Bob1" -notcontains "ob"

 

-is

 

类型操作符

 

"Bob" -is "System.String"

 

-isnot

 

非类型操作符

 

"Bob" -isnot "System.Int32"

 

  3. ForEach-Object:处理列表或者命令输出的每一个项目

  使用ForEach-Object命令(别名是foreach和%)来处理列表中的每一项。

  使用例子如下:

PowerShell管道入门教程

  例子中1..10的意思是简单声明了一个1~10的一组数字。其中处理列表中每一项还可以用for、foreach、do和while等,以后会更详细的介绍。

  4. Select-Object:选择列表项或输出结果只输出要的结果