2011-01-19 116 views
0

我在生產服務器上有一個PowerShell腳本來顯示超過30天的數據庫備份文件列表。如何在PowerShell中實現這種排除文件的方式?

我只需要看到擴展名爲「.bak」的文件。但是,在我的腳本中沒有匹配的語法或regular expression,所以我也會看到一個文件列表,其中有一個像「filename.foo.bak」這樣的擴展名。這些文件可能是服務器上的文本文件或其他配置文件,使用這些文件的程序自動執行了備份。

如何啓用匹配過濾器,以便只看到「* .bak」而不是上面提到的其他文件?

正如mjolinor所提到的,我用這個腳本來排除。

gci $paths -recurse -filter *.bak -exclude *.*.bak | ?{!$_.psiscontainer} 

然而,我知道我需要排除某些系統文件夾,例如C:\ WINDOWS。 這又如何實現呢?

回答

2

試試這個:

gci *.bak -exclude *.*.bak 

我試着回答您的評論,但代碼不顯示正確。 -exclude需要一個字符串[]參數,所以:

gci -recurse -filter *.bak -exclude *.*.bak,windows |? {!$_.psiscontainer} 
+0

感謝Mjolinor,這個工程。我發現像C:\ Windows這樣的系統文件夾也不得不被排除。我瞭解到-exclude開關僅適用於文件。如果我們可以將這些文件夾添加到排除列表中,那將非常棒。 – Animesh 2011-01-19 18:09:11

相關問題