How can I use PowerShell's -filter parameter to exclude values/files?

会有一股神秘感。 提交于 2019-12-12 08:42:29

问题


I'm currently running a PowerShell (v3.0) script, one step of which is to retrieve all the HTML files in a directory. That works great:

$srcfiles = Get-ChildItem $srcPath -filter "*.htm*"

However, now I'm faced with having to identify all the non-HTML files...CSS, Word and Excel docs, pictures, etc.

I want something that would work like the -ne parameter in conjunction with the -filter parameter. In essence, give me everything that's not "*.htm*"

-filter -ne doesn't work, I tried -!filter on a whim, and I can't seem to find anything in powershell doc on MSDN to negate the -filter parameter. Perhaps I need to pipe something...?

Does anyone have a solution for this?


回答1:


-Filter is not the right way. Use the -exclude parameter instead:

$srcfiles = Get-ChildItem $srcPath -exclude *.htm*

-exclude accepts a string[] type as an input. In that way you can exclude more than one extension/file type as follows:

 $srcfiles = Get-ChildItem $srcPath -exclude *.htm*,*.css,*.doc*,*.xls*

..And so on.




回答2:


I am a little newer to PowerShell, but could you pipe to the where command?

$srcfiles = Get-ChildItem $srcPath | where-object {$_.extension -ne "*.htm*"}

I am not sure what the actually property you would use in place "extension" is though.



来源:https://stackoverflow.com/questions/16991934/how-can-i-use-powershells-filter-parameter-to-exclude-values-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!