2015-08-11 2 views
3

Мне нужно удалить файлы tmp старше 6 месяцев. У меня эта команда запускается в пакетном файле, который удаляет файлы старше 180 дней.Удалить файлы старше 6 месяцев с командным файлом

forfiles /p "C:\Backup" /s /m *.tmp /c "cmd /c Del @path" /d -180 

, но я хочу передать number of month вместо number of days. любая идея будет очень полезна. Заранее спасибо

+0

Как вы проходя дни forfile в вашем командном файле сейчас? – Ali786

+0

Насколько критический период составляет 6 месяцев? Есть 3 или 4 дня в одну сторону или другую значительную? – foxidrive

+0

Я упомянул количество дней непосредственно в пакетном файле и просто запустил командный файл в расписании задач –

ответ

1

AFAIK для forfiles вы не можете передать месяцев в качестве аргумента либо вы должны пройти Date или No of Days ..

см этот документ для получения дополнительной информации https://technet.microsoft.com/en-us/library/cc753551.aspx

, но вместо этого вы можете прочитать значение как месяцы и преобразовать его в дни и передать его forfiles вручную ..

Как вы проходите дни в файл forfile в своем пакетном файле сейчас?

+0

Я упомянул количество дней непосредственно в пакетном файле и просто запустил командный файл в расписании задач –

+0

, если вы указав его непосредственно в пакетном файле, а не как аргумент, вы можете указать 180 дней, почему вам нужно его преобразовать. Если вы собираетесь передать его в качестве аргумента, вам может потребоваться рассмотреть преобразование и присвоение его. – Ali786

1

Вы также можете использовать команды powershell, если вы действительно хотите предоставить день, месяц, год любой из них в качестве аргумента.

Пример:

Get-ChildItem –Path “C:\Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddMonths(-6) | Remove-Item 
Смежные вопросы