Нужна помощь Создание специального пакетного файла

Нужна помощь Создание специального пакетного файла

Мне нужна помощь в создании пакетного файла, который удалит файлы журнала в 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

Связанный контент