PowerShell函数与管道

函数

定义与调动
函数代码块以function关键词开头,后接函数标识符和圆括号()
参数放在圆括号中间,各参数之间以逗号隔开。
函数的第一行语句可以选择性的使用文档字符串#用于存放函数说明。
函数内容以{ 并行缩进;return [表达式] } 结束函数,选择性的返回一个值给调用方。
不带”return[表达式]“,函数默认返回None;否则返回相应表达式的值

例如:
在这里插入图片描述
参数
–形参
在定义函数时需要申明函数需要接收的参数个数,类型,顺序。在PowerShell中有一个隐形的形参args[],即使在申明函数时没有申明形参,也可以使用这个参数来取值。
例如:
在这里插入图片描述
–实参
实参就是调用函数过程中给函数传入的实际参数值,参数传递过程中必须按照形参定义的顺序,个数和类型来传入。
违背类型的参数会造成一些编译异常。
实参传递过程中,如果超出形参个数,则这部分的参数将被args接收。
在PowerShell中传递参数还可以指定参数名进行传播。
例如:test -a 1 -b 2

–变量的作用域
全局变量和局部变量,局部变量只能在申明的函数内部使用,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内申明的变量名称都将被加入到作用域中。
例如:
在这里插入图片描述
全局变量则可以让两个函数都能访问到

管道
管道可以把上一条命令的输出作为下一条命令的输入。
“|” – 管道关键字
例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending 对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。
在这里插入图片描述

Where-Object
:过滤列表或命令输出结果,例如:

ls | sort -Descending Length | Where-Object {$_.Name -like "*d*"}

查找ls中的名字Name倒叙排列之后,Name中的首字母是d的内容不区分大小写。

ls | sort -Descending Length | Where-Object {$_.Name -like "*d*"}

查找ls中的名字Name倒叙排列之后,Name中包含字母是d的内容不区分大小写。
区分大小写的是-clike

ls | sort -Descending Length | Where-Object {$_.length -lt 20}

查找ls中的名字Name倒叙排列之后,Length的大小是小于20的内容不区分大小写。
在这里插入图片描述
ForEach-Object
处理列表或者命令输出的每一个项目。
使用ForEach-Object命令(别名是foreach和%)来处理列表中的每一项。
对1到10每个数都✖5
在这里插入图片描述
Select-Object
选择列表项或输出结果只输出要的结果。
使用Select-Object(别名是select)对象可以选择一个对象或者一组对象的指定属性。还可以从对象数组中选择唯一对象,也可以从对象数组的开头和末尾选择指定个数的对象。例如:
a.选择当前路径下所有项目的Name和Length属性。
在这里插入图片描述
b.选择当前路径下的前三个项目
在这里插入图片描述
c.选择当前路径下所有项目的Name和自定义属性,名字叫做Last Modified Day,结果是通过LastWriteTime属性算出来的
在这里插入图片描述
d.选择当前路径下的第一个和第六个项目:
在这里插入图片描述
e.选择当前路径下除了第五个项目外的所有项目。
在这里插入图片描述
Sort-Object
对列表项或者输出结果进行排序
使用Sort-Object(别名是sort)可以按照特定属性值对对象进行排序。可以指定一个属性或多个属性(用与多键排序),也可以区分大小写或不区分大小写的排序。还可以指示Sort-Object 只显示对于特定属性具有唯一值的对象。如果某个对象不具有所指定的属性之一,则cmdlet会将对象的属性值解释为NULL,并将其放置在排序顺序的末尾。例如:
在这里插入图片描述
Tee-Object
保持并输出列表项或者输出结果。

Group-Object
对列表项或者输出结果进行分组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值