Пакет Windows: создать метку времени из строки

Я хочу удалить любые файлы, которые старше определенной произвольной даты (эту дату я хочу указать вручную в своем коде).

Как я могу получить временные метки соответствующих файлов и сравнить их с моей произвольной датой? Я знаю, что могу получить временные метки с чем-то вроде:

for %%f in (./*) do echo %%~tf

... и я могу сравнить строки или числа с gtr а также lss, но я не могу очень хорошо сравнить временные метки как строки (потому что они будут сравниваться по алфавиту, а не по хронологии).

1 ответ

Решение

Используйте FORFILES с параметром /D. (тип FORFILES /? из командной строки для помощи).

Например, следующее удалит все файлы из текущего каталога, которые не были изменены с 1 марта 2011 года:

forfiles /d -3/1/2011 /c "cmd /c if @isdir==FALSE del @file"

Можно работать с датами, возвращенными %%~tf, но это королевская боль; особенно если вы хотите, чтобы ваше решение работало на нескольких машинах, возможно, с разными настройками формата даты.

Другие вопросы по тегам