1

多数のファイルを含むディレクトリがあります。さらに、いくつかの文字列を含む配列があります。私がやりたいことは、配列内のどの文字列でも始まらないすべてのファイルを削除することです。

したがって、次のファイルを含むフォルダーがある場合:

test1.txt
test2.txt
test10.txt
dummy.txt
foo.txt
bar.txt

そして、値を持つ配列があります'test1','dummy','foo'

これにより、次のファイルが削除されるようにしたい: test2.txt, bar.txt'.

配列がなく、アイテムが 1 つしかない場合、次のように正常に動作するようになりました。

Get-ChildItem .\ | where { $_.Name.StartsWith('test1') } | Remove-Item

しかし、単なる文字列ではなく配列がある場合、どうすればよいか本当にわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

4

配列要素にワイルドカードを追加できる場合は、次のように動作するはずです。

配列内のパターンに一致するものを削除します。

$include=@('test1*','dummy*','foo*')
Get-ChildItem *.* -include $include | Remove-Item

配列内のパターンに一致しないものを削除します。

$include=@('test1*','dummy*','foo*')
Get-ChildItem *.* -exclude $include | Remove-Item
于 2013-09-24T11:42:41.700 に答える