當(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
標(biāo)簽:汕頭 臨汾 喀什 湘潭 襄陽 天水 疫苗接種 南昌
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Powershell小技巧之使用Get-ChildItem得到指定擴(kuò)展名文件》,本文關(guān)鍵詞 Powershell,小,技巧,之,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。