Мне нужна помощь в создании пакетного файла, который удалит файлы журнала в D:/folderx на Server:\serverx Это необходимо для устранения ручного процесса очистки диска, чтобы избежать страницы из-за нехватки места на диске. Файлы с расширениями .txt, .trc и .phd, которые старше 5 дней, должны быть удалены.
Есть идеи?
заранее спасибо
Дэн
решение1
У меня как раз завалялась такая штука.
forfiles -p "D:/folderx" -s -m *.* /D -5 /C "cmd /c del @path /q
Это все файлы; чтобы указать расширения, нужно изменить *.*
бит.
forfiles -p "D:/folderx" -s -m *.txt /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx" -s -m *.trc /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx" -s -m *.phd /D -5 /C "cmd /c del @path /q
(Иногда я все еще прибегаю к старым методам, потому что у меня есть библиотека старых вещей, которые я могу использовать повторно. Однако со временем я перепишу эту библиотеку на PowerShell.)
решение2
Я согласен с другими комментариями, что PowerShell следует использовать в будущем для таких задач автоматизации. Вот небольшой скрипт, который выполнит описанную вами очистку. Вы можете найти различные способы запустить PowerShell из пакетного файла, если вам это нужно по какой-то причине, напримерэтот ответ. А еще лучше — просто запустите его непосредственно из запланированной задачи или инструмента автоматизации.
Пример сценария:
$DIRECTORY = "D:\folderx"
$MAX_AGE_DAYS = 5
$matchedFiles = Get-ChildItem $DIRECTORY | where {$_.Extension.ToLower() -match "txt|trc|phd" -and $_.CreationTime -lt (Get-Date).AddDays(-1*$MAX_AGE_DAYS)}
$matchedFiles | Remove-Item