Я пытаюсь создать запланированную задачу, чтобы очистить каталог разработки старого кода. Я видел несколько примеров, которые приближаются, но есть пара вещей, которые я не могу понять.Очистка каталога с определенными параметрами
Сначала в корневом каталоге, с которым я работаю, нет файлов. Он полон подкаталогов. Из подкаталогов мне нужно сохранить два, со всем их содержимым, независимо от того, что. Остальные каталоги удаляются вместе с их содержимым, если им больше 14 дней. Ничего в любом из каталогов не нужно сортировать по дате. Следует учитывать только даты начального каталога верхнего уровня. Вот что я имею, что не работает правильно ... Это удаляет все в папке, к моему ужасу!
# Set folder path
$dump_path = "C:\TEMP"
# Set min age of files
$max_days = "-14"
# Get the current date
$curr_date = Get-Date
# Determine how far back we go based on current date
$del_date = $curr_date.AddDays($max_days)
# Delete the files older than x days on the main folder level (Folders Excluded)
Get-ChildItem $dump_path | ?{ !$_.PsIsContainer } | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Force -Confirm:$False
# Delete the folders (and all included content) older than x days on the main folder level (Files Excluded)
Get-ChildItem $dump_path |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays(-14) -and (-not($_.name -eq "SoftwareInventory;atms"))} | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Recurse -Force -Confirm:$False
Я ценю любую помощь, которую я могу получить, чтобы это работало. Я не писал этот код. Это по частям от этого и других сайтов, кладя куски, которые я нашел вместе, пытаясь заставить его работать. Я довольно новичок в кодировании.
Является ли „SoftwareInventory“ „Банкоматы“ в 2 папки, которые нужно держать? \ – Matt
Да, эти две директории и все под ними должны быть сохранены –