Удалить массив имен файлов просто:
Remove-Item foo.txt,c:\temp\bar.txt,baz\baz.txt
Или через переменную:
$files = 'foo.txt','c:\temp\bar.txt','baz\baz.txt'
Remove-Item $files
А затем на основе всех файлов в разных папках:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r | Where {!$_.PSIsContainer} | Remove-Item -WhatIf
Удалите -WhatIf
, чтобы сделать фактическое удаление.
Если вы хотите удалить файл с определенным именем, вы можете использовать параметр -Filter
в Get-ChildItem
. Это был бы самый эффективный подход:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r -filter foo.bak | Remove-Item -WhatIf
Если имя требует более сложного соответствия, тогда вы можете использовать регулярное выражение в блоке скриптов Where, например:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r | Where {$_.Name -match 'f\d+.bak$'} |
Remove-Item -WhatIf