Каждую ночь мне нужно работать над папкой, которой 36 дней с текущей даты. У меня есть система, которая записывает файлы в ежедневную структуру, как показано ниже. Мне нужно хранить 35 дней на локальном диске, и поэтому каждую ночь мне нужно архивировать данные с 36-го дня. Здесь кикер ... Есть около 2 миллионов файлов в день, поэтому я не могу эффективно сканировать всю папку 2009 года и перемещать только файлы старше 35 дней. Что мне нужно сделать, так это с помощью пакетного скрипта определить путь к папке, которой 36 дней, и затем применить мою логику архива. У меня есть сценарии для определения, но у меня проблемы с выполнением определения до 36 дней. В крайнем случае, я могу использовать Perl, если нет пакетного способа сделать это. --Shawn
Структура папок выглядит следующим образом:
2009\07\01
2009\07\02
2009\07\03
.
.
.
2009\08\01
2009\08\02
2009\08\03
@ РЕДАКТИРОВАТЬ: Великий ответ Хелен имеет меня 99% пути туда. Моя единственная проблема заключается в том, что месяц и день из VBS не дополнены нулем, с которым мне приходится иметь дело в структуре папок. У кого-нибудь есть простой способ дополнить 0, если день или месяц меньше 10?
Вот что я делаю до сих пор:
for /F "tokens=1-3 delims=/" %%x in ('cscript //nologo get36thday.vbs') do (
SET YYYY=%%z
SET MM=%%x
SET DD=%%y)
за исключением того, что% MM% заканчивается 7 вместо 07