當(dāng)你使用Get-ChildItem獲取輸出文件列表時(shí),你可能會(huì)發(fā)現(xiàn)即使用了-Filter參數(shù)也會(huì)比你預(yù)期的結(jié)果要多得多。
這里有一個(gè)例子,它不僅返回.ps1擴(kuò)展名文件同時(shí)也返回.ps1xml擴(kuò)展名文件:
Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1
為了限制結(jié)果集只是你設(shè)置后的擴(kuò)展名,可以添加一個(gè)命令的過濾器,以完善的結(jié)果:
Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 |
Where-Object { $_.Extension -eq '.ps1' }
這將只返回指定的擴(kuò)展名文件。
混合使用Get-ChildItem 參數(shù)
可以在同一命令中使用 Get-ChildItem cmdlet 的多個(gè)參數(shù)。在混合使用參數(shù)之前,請(qǐng)確保您了解通配符匹配。例如,以下命令將不會(huì)返回完整的結(jié)果:
PS> Get-ChildItem -Path C:\Windows\*.dll -Recurse -Exclude [a-y]*.dll
它只會(huì)返回C:\Windows\下的不以a-y開頭的dll。原因是你給的是具體的只是C:\Windows\下的*.dll,而這與遞歸的參數(shù)-recurse矛盾,因?yàn)?recurse將返回的是C:\Windows\目錄及遞歸目錄下所有符合要求的dll。
以下是正確的代碼:
若要為名稱與特定模式相匹配的文件指定遞歸搜索,請(qǐng)使用 -Include 參數(shù)。
PS> Get-ChildItem -Path C:\Windows -Include *.dll -Recurse -Exclude [a-y]*.dll
您可能感興趣的文章:- PowerShell小技巧之實(shí)現(xiàn)文件下載(類wget)
- PowerShell中使用Get-Alias命令獲取cmdlet別名例子
- PowerShell中使用Get-Date獲取日期時(shí)間并格式化輸出的例子
- PowerShell中使用Get-EventLog讀取、篩選系統(tǒng)日志的例子
- PowerShell中使用Out-String命令把對(duì)象轉(zhuǎn)換成字符串輸出的例子
- PowerShell中使用Get-ChildItem命令讀取目錄、文件列表使用例子和小技巧
- PowerShell實(shí)現(xiàn)簡(jiǎn)單的grep功能