标题: [原创教程] PowerShell 技能连载 - 获取指定扩展名的文件 [打印本页]
作者: victorwoo 时间: 2014-8-17 20:38 标题: PowerShell 技能连载 - 获取指定扩展名的文件
原始链接:PowerShell 技能连载 - 获取指定扩展名的文件
发表日期:2014-08-15
适用于 PowerShell 所有版本
当您使用 `Get-ChildItem` 来获取一个文件列表时,您可能会注意到 `-Filter` 参数有时候会导致返回比你预期的更多的文件。
以下是一个例子。这段代码并不只是返回“.ps1”扩展名的文件,而也会返回“.ps1xml”扩展名的文件:- Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1
复制代码
要限制只返回您需要的扩展名的文件,请用一个 cmdlet 来过滤结果:- Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter [i].ps1 [/i]
- Where-Object { $_.Extension -eq '.ps1' }
复制代码
这将只返回您指定的扩展名的文件。
本文国际来源:Getting Files with Specific Extensions Only
作者: Linuxer 时间: 2014-8-20 10:13
- Where-Object { $_.Extension -eq '.ps1' }
复制代码
这里边的$_.Extension是什么意思呢?
版主,自动执行的又把斜体代码带出来了,复制代码
感觉这个比bat里的%~nxI要容易理解一些。。
作者: Linuxer 时间: 2014-8-20 10:39
回复 1# victorwoo
懂了,原来就是代表扩展名的意思,,where就像数据库里的select一样,,,where-object从管道里查询指定内容。。
作者: 523066680 时间: 2014-8-20 11:04
回复 2# Linuxer
好用是好用,就是整条语句加起来长了点。要是$_.Ext就简短咯
作者: CrLf 时间: 2014-8-20 18:30
个人认为与其用 where 不如用 -include '*.txt',无论可读性还是执行效率都是更优选择- Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Include '*.ps1'
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |