У моей компании есть отдельные папки в общем ресурсе для каждого проекта, над которым они работают, и если за последние шесть месяцев не было затронуто ни одного файла в одной из этих папок или его подпапок, я хочу переместить их в место архивирования. Если какой-либо один файл в папке или любой из ее подпапок был изменен за последние шесть месяцев, я хочу пропустить весь родительский каталог. Сейчас я в основном там, но моя текущая итерация пропускает только отдельные файлы, и я не уверен, как указать, как пропустить весь родительский элемент. Вот мой текущий сценарий:
$Date = (Get-Date).AddMonths(-6)
$Source = 'C:\Scripts\Source'
$Dest = 'C:\Scripts\Test Target'
Get-ChildItem $Source -File -Recurse | Where {$_.LastWriteTime -lt $Date} | ForEach {
$actualSource = Split-Path $_.FullName
$actualDest = Split-Path $_.FullName.Replace($source,$dest)
robocopy $actualSource $actualDest $_.Name /SEC
}
При использовании моих тестовых каталогов у меня есть папка C: \ Scripts \ Source \ Drivers. Сценарий копирует эту папку «Драйверы» так, как я хочу, но если я помещу более новый файл в эту папку «Драйверы», я хочу пропустить всю папку. В настоящее время папка и все, что старше шести месяцев в папке, все еще копируется, и она просто пропускает отдельные файлы, которые являются более новыми.
Пожалуйста, дайте мне знать, если потребуется дополнительная информация.