1

我有一个包含许多文件的目录。另外我有一个带有一些字符串的数组。我想要做的是删除所有以数组中任何字符串开头的文件。

因此,如果一个文件夹包含以下文件:

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

我有一个包含 values 的数组'test1','dummy','foo'

我希望这会导致以下文件被删除:test2.txt, bar.txt'.

如果我没有数组,而只有一个项目,我可以像这样正常工作:

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 回答