16
我有一個名爲topfolder
的項目文件夾,我想查找所有符合特定模式的子文件夾中的所有文件,例如,當文件夾名稱中包含foo
時,我想列出其中的所有文件。如何使用Get-ChildItem在具有特定名稱的目錄中查找文件?
我想是這樣的:
gci .\topfolder -rec -filter *foo*
但它有兩個問題:
- 只有文件實際上包含
foo
將上市(我想任何文件FOO類文件夾)。 - 與此過濾器匹配的目錄也將成爲結果集的一部分。
然後我嘗試這樣的:
gci .\topfolder\*foo* -include *.*
但是,這並不在所有的工作 - 顯然通配符匹配只有一個路徑的一個段,這樣模式將匹配topfolder\foobar
但不topfolder\subfolder\foobar
。
我發現的唯一辦法,到目前爲止是使用Get-ChildItem兩次,這樣的:
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
這工作,但它似乎是一種浪費調用gci
兩次,我希望我只是沒」找到正確的通配符表達式,例如-Path
,-Filter
或-Include
。
這樣做的最好方法是什麼?
它是如何從我的最後一個例子有什麼不同?這不會比我的嘗試慢嗎? – Borek 2012-04-03 15:02:01
對不起,我一定是盲目的;) – 2012-04-03 15:08:57
剛發佈了一個更新的答案 – 2012-04-03 15:25:00