PowerShell中的管道命令

时间:2024-03-18 17:42:01

管道指的是将上一条命令的输出,作为下一条命令的输入。

管道上下命令,通过“|”连接。

那powershell中常用的管道命令有哪些呢?一起来看看吧。

1.Where-Object:

说明:别名是where或?,从列表或命令输出结果中过滤选择你需要的项目。

如,显示文件夹中,长度小于1000的文件

dir | Where-Object {$_.length -lt 1000}

PowerShell中的管道命令

dir:展示文件夹中的所有文件

Where-Object {$_.length -lt 1000}:显示长度小于1000的文件。其中,$_表示当前输入的对象,-lt是小于。

或者文件名中,包含“i“的文件。

 dir | Where-Object {$_.name -like "*i*"}

PowerShell中的管道命令

其中:

-like 验证字符包含关系,不区分大小写,-clike则是区分大小写。

”*“表示字符任意匹配符。

2.Foreach-Object:

说明:处理列表或者命令输出的每一个项目,别名是foreach或%,与powershell中的foreach用法一致。

如:将1-10中所有数乘5,并打印出来。

 1..10|ForEach-Object{$_ * 5}

PowerShell中的管道命令

3.Select-Object:

说明:别名是select在列表项或输出结果中,只输出自己想要的结果。

如:dir后,显示的文件如下:

PowerShell中的管道命令

若我们只想显示”name“项,则在后面添加|Select-Object name即可。

如下图:

PowerShell中的管道命令

若需要显示多项,用逗号隔开。

4.Sort-Object:

说明:别名sort,对列表项或输出结果进行排序。

如:我们在上例中,搜索到了文件名,对文件名进行排序。

PowerShell中的管道命令

其中,sort-object默认是升序排序,若需要降序排序,则输入Sort-Object -Descending 或Sort-Object -des

如:

PowerShell中的管道命令

5.Group-Object:

说明:别名group,对列表项或输出结果进行分组。

如:对文件夹下的文件和文件夹进行分组。

dir|Group-Object mode

PowerShell中的管道命令

其中,count指总数,即分组后,组内元素的个数。

6.其他命令

tee-object:保存并输出列表项或输出结果

measure-object:对列表项或输出结果进行计算

converto-html:将对象转换为html

export-csv:将对象转换为csv字符串储存在文件中

format-list、format-table、format-wide:将输出结果格式化

get-unique:获取输出结果的唯一值

out-file:将输出结果输出到文件

get-member:获取管道操作对象的属性

7.文件的输入与输出

powershell中文件读取方式十分简单,通过get-content + 文件路径 就可以读取一个文本文件的内容。

如:

PowerShell中的管道命令

在powershell中写出也非常容易,格式如下:

内容 > 文件名 :表示覆盖文件

内容 >> 文件名 :表示追加内容

 

练习1:文件夹中内容如下,如何获取文件夹中,五个最小文件的名称?

PowerShell中的管道命令

思路:先显示文件夹中的文件,按照大小升序排序,取其前五个即可

PowerShell中的管道命令

练习2:查找到以te开头的文件,并在其内容后面追加“I don't know ,too.”

思路:先通过管道找到文件,将内容通过“>>”追加即可。

PowerShell中的管道命令

最后,也欢迎大家在评论区补充笔者未提到的内容,谢谢。