我有一个包含许多文件的目录。另外我有一个带有一些字符串的数组。我想要做的是删除所有不的文件以数组中的任何字符串开头。
因此,如果一个文件夹包含以下文件:
test1.txt
test2.txt
test10.txt
dummy.txt
foo.txt
bar.txt
我有一个值为'test1','dummy','foo'
的数组。
我希望这会导致以下文件被删除:test2.txt, bar.txt'
。
如果我没有阵列,但只有一个项目,我可以这样工作:
Get-ChildItem .\ | where { $_.Name.StartsWith('test1') } | Remove-Item
但是当我有一个数组而不是一个字符串时,我真的不知道该怎么做。
任何帮助都将不胜感激。
答案 0 :(得分:4)
如果可以向数组元素添加通配符,则以下内容应该有效:
删除与数组中的模式匹配的那些:
$include=@('test1*','dummy*','foo*')
Get-ChildItem *.* -include $include | Remove-Item
删除与数组中的模式匹配的不:
$include=@('test1*','dummy*','foo*')
Get-ChildItem *.* -exclude $include | Remove-Item