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?
-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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With