PowerShell强大管道
1:集合遍历ForEach-Object:可以简写为foreach,或者%代替,提供了管道传入的对集合的遍历,同时提供了操作前begin,操作process,结束end命令,其中$_提供对当前索引的指代。
示例:下面我们实践利用ForEach-Object来计算本地文件目录的文件大小:
image
2:条件选择Where-Object:可以简写为where或者?代替。提供了对管道输入集合的过滤筛选,类似于SQL中的where条件,$_提供对当前索引的指代。
示例:输出文件大于100KB的文件名字和大小:
image
3:选择Select-Object:简写select,提供了对对象的选择类似于sql的select,.net的new匿名对象。同时select支持-first和-last取最前面或者最后面的几个相当于sql 中top,与下例中Sort-Object结合将很有用。
示例:选择目录下文件的文件名和大小输出:
SNAGHTML3b707d0
4:排序Sort-Object:简写sort,对于集合对象参照一个或者多个属性排序,可以指定-descending为倒序。
示例:获取最大的前5个文件:
SNAGHTML3bc4128
5:管道树Tee-Object:简写为tee,可以把管道模型传入的对象记录在文件日志或者赋值给变量保存等。提供-inputObject ,-filePath ,-variable
示例:保存文件对象时$test变量:
SNAGHTML3c03d8f
6:分组Group-Object:简写group,提供依据属性分组类似sql group by。
示例:按照文件类型分组并按照组内文件个数排序
SNAGHTML3c30688
7:集合统计Measure-Object:简写:measure,提供了对集合的统计,简便的方法来获取最小值、最大值及平均值属性。
示例:统计文件大小的最小值,最大值,平均值,总大小:
SNAGHTML3c60aad
8:比较Compare-Object:简写diff,提供了对两个对象或集合的比较,其中有单侧指向器,=>表达此对象出现在右边,<=表示差异对象存在于左边。
示例:新建一个文件夹2,比较连个目录的不同:
SNAGHTML3cb035d
今天就到这里,PowerShell很强大,继续学习。
详见 http://www.cnblogs.com/whitewolf/archive/2012/06/09/2543247.html
1:集合遍历ForEach-Object:可以简写为foreach,或者%代替,提供了管道传入的对集合的遍历,同时提供了操作前begin,操作process,结束end命令,其中$_提供对当前索引的指代。
示例:下面我们实践利用ForEach-Object来计算本地文件目录的文件大小:
image
2:条件选择Where-Object:可以简写为where或者?代替。提供了对管道输入集合的过滤筛选,类似于SQL中的where条件,$_提供对当前索引的指代。
示例:输出文件大于100KB的文件名字和大小:
image
3:选择Select-Object:简写select,提供了对对象的选择类似于sql的select,.net的new匿名对象。同时select支持-first和-last取最前面或者最后面的几个相当于sql 中top,与下例中Sort-Object结合将很有用。
示例:选择目录下文件的文件名和大小输出:
SNAGHTML3b707d0
4:排序Sort-Object:简写sort,对于集合对象参照一个或者多个属性排序,可以指定-descending为倒序。
示例:获取最大的前5个文件:
SNAGHTML3bc4128
5:管道树Tee-Object:简写为tee,可以把管道模型传入的对象记录在文件日志或者赋值给变量保存等。提供-inputObject ,-filePath ,-variable
示例:保存文件对象时$test变量:
SNAGHTML3c03d8f
6:分组Group-Object:简写group,提供依据属性分组类似sql group by。
示例:按照文件类型分组并按照组内文件个数排序
SNAGHTML3c30688
7:集合统计Measure-Object:简写:measure,提供了对集合的统计,简便的方法来获取最小值、最大值及平均值属性。
示例:统计文件大小的最小值,最大值,平均值,总大小:
SNAGHTML3c60aad
8:比较Compare-Object:简写diff,提供了对两个对象或集合的比较,其中有单侧指向器,=>表达此对象出现在右边,<=表示差异对象存在于左边。
示例:新建一个文件夹2,比较连个目录的不同:
SNAGHTML3cb035d
今天就到这里,PowerShell很强大,继续学习。