管道指的是将上一条命令的输出,作为下一条命令的输入。
管道上下命令,通过“|”连接。
那powershell中常用的管道命令有哪些呢?一起来看看吧。
1.Where-Object:
说明:别名是where或?,从列表或命令输出结果中过滤选择你需要的项目。
如,显示文件夹中,长度小于1000的文件
dir | Where-Object {$_.length -lt 1000}
dir:展示文件夹中的所有文件
Where-Object {$_.length -lt 1000}:显示长度小于1000的文件。其中,$_表示当前输入的对象,-lt是小于。
或者文件名中,包含“i“的文件。
dir | Where-Object {$_.name -like "*i*"}
其中:
-like 验证字符包含关系,不区分大小写,-clike则是区分大小写。
”*“表示字符任意匹配符。
2.Foreach-Object:
说明:处理列表或者命令输出的每一个项目,别名是foreach或%,与powershell中的foreach用法一致。
如:将1-10中所有数乘5,并打印出来。
1..10|ForEach-Object{$_ * 5}
3.Select-Object:
说明:别名是select在列表项或输出结果中,只输出自己想要的结果。
如:dir后,显示的文件如下:
若我们只想显示”name“项,则在后面添加|Select-Object name即可。
如下图:
若需要显示多项,用逗号隔开。
4.Sort-Object:
说明:别名sort,对列表项或输出结果进行排序。
如:我们在上例中,搜索到了文件名,对文件名进行排序。
其中,sort-object默认是升序排序,若需要降序排序,则输入Sort-Object -Descending 或Sort-Object -des
如:
5.Group-Object:
说明:别名group,对列表项或输出结果进行分组。
如:对文件夹下的文件和文件夹进行分组。
dir|Group-Object mode
其中,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中写出也非常容易,格式如下:
内容 > 文件名 :表示覆盖文件
内容 >> 文件名 :表示追加内容
练习1:文件夹中内容如下,如何获取文件夹中,五个最小文件的名称?
思路:先显示文件夹中的文件,按照大小升序排序,取其前五个即可
练习2:查找到以te开头的文件,并在其内容后面追加“I don't know ,too.”
思路:先通过管道找到文件,将内容通过“>>”追加即可。
最后,也欢迎大家在评论区补充笔者未提到的内容,谢谢。