Пакет 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
, но это королевская боль; особенно если вы хотите, чтобы ваше решение работало на нескольких машинах, возможно, с разными настройками формата даты.