AI智能
改变未来

power shell 函数 管道

power shell 函数 管道

  • 一、函数
  • 二、管道

一、函数

重复用的指定序列 给模块化的指令序列取名。通过名字调用这个指令序列

定义
function–关键字
函数名–自定义(一个以上的英文单词,小驼峰:第一个英文单词首字母小写,第二个英文单词首词母大写;帕斯卡:所有首字母都大写)
()–参数列表,形参列表
{}–函数体,编写指令序列
形参
形式参数,用来声明函数接受的参数个数,顺序和类型
传参

  1. 对没有声明形参的函数也可以传参,通过空格来区分参数,参数被放入到args(系统自带)这个数组里
  2. 对声明了形参的函数传参,可以通过空格来区分参数,这样必须保证传递的参数与形参顺序匹配
  3. 对声明了形参的函数传参,可以通过-形参名来指定为某一个参数传参,可以不考虑形参顺序
  4. 对于PowerShell这种结构特别松散的脚本,可以不考虑形参个数和顺序。
    4.1. 传递参数时,如果参数个数不足,则以空填充
    4.2. 传递参数时,如果参数个数多于形参,则把多的参数放入args数组里
    传参建议
    按照强类型语言的约定进行参数传递
    返回值
    return 返回值
    局部变量和全局变量
    在一对{}里面定义的变量,仅仅只能在当前这个代码段里面使用这叫局部变量;
    在函数外面定义的变量,可以在所有的函数里面使用,这叫全局变量;

二、管道

1、管道
第一个命令(函数)的结果做为第二个命令(函数)的输入
函数可以自定义
| – 管道关键字

2、常用的管道函数

1、  ls--获取当前目录的所有文件信息Get-ChildItem | Where-Object {$_.Length -gt 200} | Sort-Object -Descending Name“Get-ChildItem”意思是获取当前路径的所有项目,“|Where-Object {$_.Length -gt 200}”意思是查看上一步结果,取所有长度大于200的项目,“|Sort-Object -Descending Name”意思是查看上一步结果,按照Name进行倒叙排列。![在这里插入图片描述](Shell/https://aiznh.com/wp-content/uploads/2021/06/20210608231238-60bff966769ee.jpg)2、Where-Object:过滤列表项或命令输出结果3、 ForEach-Object:处理列表或者命令输出的每一个项目4、Select-Object:选择列表项或输出结果只输出要的结果a、dir | Select-Object Name , Length  选择当前路径下所有项目的Name和Length属性:b、dir | Select-Object -First 3    选择当前路径下前三个项目c、  dir | Select -Property Name , @{Name = \"Last Modified Day\"; Expression ={ $_.LastWriteTime.DayOfWeek}}    选择当前路径下所有项目的Name和自定义属性,名字叫做Last Modified Day,结果是通过LastWriteTime属性算出来的d、dir | select -index 0,5     选择当前路径下第一个和第六个项目e、dir | select -skip 4       选择当前路径下除第五个项目外的所有项目f、1,1,2,2,4,4,5,5,6,7,8,8 | select -Unique   显示数组中的唯一数字5、 Sort-Object:对列表项或者输出结果进行排序a、dir | Sort-Object -Property Length  对当前路径下所有的项目按照长度从小到大排序b、 1,1,2,3,5,5,6,6,7,8,9 | sort -Descending -Unique 对整个数组的唯一性数字按照降序排列6、 Tee-Object:保存并输出列表项或者输出结果a、dir | Where-Object {$_.Length -gt 900}| Tee-Object -FilePath teeResult.txt将当前路径下所有大小大于900的项目都保存到文件中并显示在控制台中7、Group-Object:对列表项或者输出结果进行分组8、Measure-Object:对列表项或输出结果进行计算9、Compare-Object:对两组对象进行比较10、ConvertTo-Html:将对象转换为HTML11、Export-Csv:将对象转换为CSV字符串存储在文件中12、Format-List、Format-Table、Format-Wide:将输出结果格式化13、Get-Unique:获取输出结果的唯一值14、 Out-File:将输出结果输出到文件15、Get-Member:如何获取管道操作对象的属性16、如何判断一个命令是否支持管道输入学会使用管道后,得学会判断一个命令是否支持管道输入。使用Get-Help命令获取一个命令的使用方法,对于参数,可以看到是否支持管道输入,或者通过MSDN去查询命令帮助。比如PowerShell Core里面的Where-Object的MSDN的帮助站点是:https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/Where-Object。对于里面的-InputObject则是支持管道输入,-Is则不支持管道输入:
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » power shell 函数 管道