Lamman
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Задача такая: батник узнаёт текущую дату, приплюсовывает к ненй неделю и записывает в файл строку в формате %date% бла-бла-бла %date%+7 дней. Важно, что бы он при этом записывал адекватные значения дня, месяца и года (разумеется, месяц можно округлить, скажем до 30 дней). Для обработки даты написал... нечто, вот только оно увы, не работает. А именно, почему-то после for значения %%a, %%b, %%c недоступны. Код: @echo off for /f "tokens=1,2,3 delims=." %%a in ('date /t') do (goto day) ay if /i %a leq 23 ((set /a a+=7) && (goto month)) else (( set a=0) && (goto day)) :month if /i %a leq 7 ((set /a b+=1) && (goto year)) else ( goto year) :year if /i %b leq 12 (goto step) else (( set b=0) && (set /a c+=1) && (goto month)) :step @echo %a %b %c | Попробовал так: Код: @echo off for /f "tokens=1,2,3 delims=." %%a in ('date /t') do ((( set dd=%%a) && ( set mm=%%b) &&( set yy=%%c)) && ( goto day)) ay if /i %dd% leq 23 ((set /a dd+=7) && (goto month)) else (( set dd=0) && (goto day)) :month if /i %dd% leq 7 ((set /a mm+=1) && (goto year)) else ( goto year) :year if /i %mm leq 12 (goto step) else (( set mm=0) && (set /a yy+=1) && (goto month)) :step @echo %dd% %mm% %yy% | ... не помогло. В чём тут может быть дело?.. И есть ли более простой способ проделать означенную операцию с датой?.. Попробовал переходить на метки через конструкцию call:day "%%a" "%%b" "%%c" тоже ничего. Ещё один вопрос: как корректно перейти от %%x в %x% из for в set? | Всего записей: 22 | Зарегистр. 23-04-2010 | Отправлено: 21:10 20-12-2010 | Исправлено: Lamman, 21:59 20-12-2010 |
|