Системная переменная %Date% принимает значение текущей системной даты.
По умолчанию в Win XP и 2003 это дд.мм.гггг. В командном окне можете набрать Echo %Date% и посмотреть, что получится.
Условно изображу дату в виде номеров позиций символов слева направо: 01.34.6789
Итак, выражение %date:~6,4% вырежет из символьной строки даты символы, начиная с 6 позиции в количестве 4 штуки, т е 6789, то есть гггг.
Аналогично для дня и месяца.
В результате я присвоил переменной TDate литерал вида ггггммдд, которая понадобится мне для подстановки в командную строку архиватора WinRar
Если у Вас дата выдаётся в другом формате, соответственно надо написать своё выражение для TData, чтобы получить в результате ггггммдд.
(подробнее наберите в командном окне Set /? For /?)
Если в командном окне наберёте
echo %programfiles%
полУчите путь папки Program Files (у меня это C:\Program Files), куда по умолчанию устанавливаются общесистемные программы, в частности, WinRar.
Если архаватор в другом месте, естественно надо вместо %programfiles% указать реальный путь.
Таким образом строка "%programfiles%\WinRar\Winrar.exe" выдаёт полный путь к архиватору. Кавычки - путь с пробелами должен быть в кавычках. Без пробелов - кавычки тоже не помешают.
"C:\Program Files\WinRar\Winrar.exe"
Смысл команд и ключей смотрите в справочной системе WinRar -вызовите WinRar-меню Справка - Содержание
команда a -добавить файлы в архив
ключ -r - c подпапками
ключ -df - с удалением файлов после архивации
ключ -tb - архивировать файлы, модифицированные до указанной даты
Один из требуемых форматов даты ггггммддЧЧММСС
Выражение %TDate%0001, например, 31 августа 2009 года будет иметь вид 200908310001
Заархивируются файлы изменённые до 00 час 1 мин 31 августа 2009.
В принципе, можно написать %TDate%000001, тогда заархивируются файлы изменённые до 00 час 00 мин 01 сек 31 августа 2009.
Файлы будут архивироваться в файл %Kuda%\%TDate%.rar (лучше написать "%Kuda%\%TDate%.rar"),
в приведенном примере для указанной мной даты получим архивный файл D:\Obmen.arh\20090831.rar
Файлы будут заархивированы из папки %Gde%\*.* (опять же, если в именах пробелы, лучше написать "%Gde%\*.*"),
то есть в примере это D:\Obmen
Цитата:
И лучше использовать бесплатный 7-zip
|
C точки зрения бесплатности - да. Удобства - увы, это не так. Не помню кому в личной переписке я решил задачу с помощью 7Zip, но это уже не с помощью bat-файла, а VBS - скрипта. Да и то, там сделано только для архивации файлов в папке без подпапок. К сожалению, все личные посты я удаляю практически сразу, а на домашнем компьютере у меня этого скрипта нет, поэтому пока его не привожу, на работу попаду через несколько дней и, дай бог, там скрипт сохранился. Можно напрячься и написать архивацию и удаление с подпапками, но для себя я не вижу пока в нём смысла.
Здесь я решал что-то похожее с помощью VBS-скрипта, но, опять же, привлекая WinRar