У меня сценарий, в котором сценарий powershell должен удалять файлы журнала и папки журнала в пути, скажем, что они находятся под контуром C: \ MLA \ logs.Ошибка Powershell при удалении файлов и папок
Ниже приведен сценарий, который я использую, он завершает удаление файлов, но проблема в том, скрипт не работает для удаления папок, ошибка отображается что-то вроде не удалось найти часть пути
C: \ MLA \ logs \ ART_Daily.
ниже сценарий
$root=C:\MLA\logs
$limit=(Get-Date).AddDays(-90)
get-childitem -Path $root -Recurse -force |
where-Object {(($_.name -match 'Daily|ART|ABC|IIC') -or ($_.PSIsContainer -match 'Daily|ART|ABC|IIC')) -and ($_.CreationTime -lt $limit)} |Remove-Item -recurse -Force
В $ имя проверяет файлы (если имена трубопроводных являются частью имени файла для любого файла) в корневом каталоге и $ .PSIsContainer проверить Папки 9 f имена, которые были переданы, являются частью имени папки для любой папки) внутри корневого пути, который параметризирован.
Можете ли вы мне помочь.
$ _. PSIsContainer -match 'Daily | ART | ABC | IIC' -eq $ Истинно, это должно быть что-то вроде этого ??? – Sri
Поиск файлов: '$ _. PSIsContainer -eq $ false' или для папок' $ _. PSIsContainer -eq $ true'. Конечно, вы не можете получить все файлы и папки таким образом: либо/или. – ConanW
В целом вам было бы лучше использовать параметры '-filter',' -include' и '-exclude' Get-ChildItem в любом случае, поскольку они передают фильтрацию поставщику файловой системы, который быстрее. – ConanW