Я работаю над сценарием powershell, удаляющим определенные файлы из папки и перемещающим остальные в предопределенные подпапки.
Моя структура выглядит следующим образом
Main
(Contains a bunch of pdb and dll files)
-- _publish
--Website
(Contains a web.config, two other .config files and a global.asax file)
-- bin
(Contains a pdb and dll file)
-- JS
-- Pages
-- Resources
Я хочу удалить все файлы pdb, config и asax из всей файловой структуры, прежде чем начать их перемещение. На что я использую:
$pdbfiles = Get-ChildItem "$executingScriptDirectory\*.pdb" -recurse
foreach ($file in $pdbfiles) {
Remove-Item $file
}
И так далее для всех типов файлов, которые мне нужно удалить. Он отлично работает, за исключением файла pdb, расположенного в папке bin на веб-сайте. И для файла ASAX в папке сайта. По какой-то причине они игнорируются рекурсивным поиском Get-ChildItem.
Это вызвано глубиной элементов в ресурсивной структуре? Или что-то еще? Как я могу это исправить, чтобы он удалял ВСЕ файлы, как указано.
РЕДАКТИРОВАТЬ: я пытался добавить -force - но это ничего не изменило
ОТВЕТ: сработало следующее:
$include = @("*.asax","*.pdb","*.config")
$removefiles = Get-ChildItem "$executingScriptDirectory\*" -recurse -force -include $include
foreach ($file in $removefiles) {
if ($file.Name -ne "Web.config") {
Remove-Item $file
}
}