脚本专栏 
首页 > 脚本专栏 > 浏览文章

Powershell小技巧之使用Get-ChildItem得到指定扩展名文件

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

当你使用Get-ChildItem获取输出文件列表时,你可能会发现即使用了-Filter参数也会比你预期的结果要多得多。

这里有一个例子,它不仅返回.ps1扩展名文件同时也返回.ps1xml扩展名文件:

Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 

为了限制结果集只是你设置后的扩展名,可以添加一个命令的过滤器,以完善的结果:

Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 | 
 Where-Object { $_.Extension -eq '.ps1' } 

这将只返回指定的扩展名文件。

混合使用Get-ChildItem 参数

可以在同一命令中使用 Get-ChildItem cmdlet 的多个参数。在混合使用参数之前,请确保您了解通配符匹配。例如,以下命令将不会返回完整的结果:

PS> Get-ChildItem -Path C:\Windows\*.dll -Recurse -Exclude [a-y]*.dll

它只会返回C:\Windows\下的不以a-y开头的dll。原因是你给的是具体的只是C:\Windows\下的*.dll,而这与递归的参数-recurse矛盾,因为-recurse将返回的是C:\Windows\目录及递归目录下所有符合要求的dll。

以下是正确的代码:

若要为名称与特定模式相匹配的文件指定递归搜索,请使用 -Include 参数。

PS> Get-ChildItem -Path C:\Windows -Include *.dll -Recurse -Exclude [a-y]*.dll
上一篇:Powershell小技巧之系统运行时间
下一篇:Windows Powershell 执行文件和脚本
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。