當你使用Get-ChildItem獲取輸出文件列表時,你可能會發(fā)現(xiàn)即使用了-Filter參數(shù)也會比你預期的結(jié)果要多得多。
這里有一個例子,它不僅返回.ps1擴展名文件同時也返回.ps1xml擴展名文件:
Get-ChildItem -Path C:/windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1
為了限制結(jié)果集只是你設(shè)置后的擴展名,可以添加一個命令的過濾器,以完善的結(jié)果:
Get-ChildItem -Path C:/windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 | Where-Object { $_.Extension -eq '.ps1' }
這將只返回指定的擴展名文件。
混合使用Get-ChildItem 參數(shù)
可以在同一命令中使用 Get-ChildItem cmdlet 的多個參數(shù)。在混合使用參數(shù)之前,請確保您了解通配符匹配。例如,以下命令將不會返回完整的結(jié)果:
PS> Get-ChildItem -Path C:/Windows/*.dll -Recurse -Exclude [a-y]*.dll
它只會返回C:/Windows/下的不以a-y開頭的dll。原因是你給的是具體的只是C:/Windows/下的*.dll,而這與遞歸的參數(shù)-recurse矛盾,因為-recurse將返回的是C:/Windows/目錄及遞歸目錄下所有符合要求的dll。
以下是正確的代碼:
若要為名稱與特定模式相匹配的文件指定遞歸搜索,請使用 -Include 參數(shù)。
PS> Get-ChildItem -Path C:/Windows -Include *.dll -Recurse -Exclude [a-y]*.dll
新聞熱點
疑難解答
圖片精選