如何在PowerShell中实现这种文件排除?

时间:2011-01-19 12:33:27

标签: powershell powershell-v2.0

我在生产服务器上有一个PowerShell脚本,向我显示超过30天的数据库备份文件列表。

我只需要查看扩展名为“.bak”的文件。但是,在我的脚本中没有匹配的语法或regular expression,所以我也看到了一个扩展名为“filename.foo.bak”的文件列表。这些文件可能是服务器上的文本文件或其他配置文件,由使用这些文件的程序自动进行备份。

如何启用匹配过滤器以便我只看到“* .bak”而不是上面提到的其他文件?

如mjolinor所述,我使用此脚本进行排除。

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

但是,我了解到我需要排除一些系统文件夹,例如 C:\ Windows 。 如何实现这一目标呢?

1 个答案:

答案 0 :(得分:2)

试试这个:

gci *.bak -exclude *.*.bak

我试图回复你的评论,但代码没有正确显示。 -exclude采用string []参数,所以:

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