Маленькие колдунства на bat’никах

Пишет камрад:
К> как мне в батнике получить строку для каталогов вида 2010–03–22
К> т.е. с датой
К> но только не в формате 22/03/2010

Me> Варианта два:
1.

@for /f «tokens=2 delims= » % %i in (‘date /t’) do set MDAT=% %i
@for /f «tokens=1 delims=/» % %i in (‘echo %MDAT%’) do set MMONTH=% %i
@for /f «tokens=2 delims=/» % %i in (‘echo %MDAT%’) do set MDAY=% %i
@for /f «tokens=3 delims=/» % %i in (‘echo %MDAT%’) do set MYEAR=% %i
set dt=%MYEAR%-%MMONTH%-%MDAY%
mkdir %dt%

2.

SetLocal EnableDelayedExpansion
set DT=%date:~6,4%-%date:~3,2%-%date:~0,2%
mkdir %dt%

К> а в чем разница?
Me> один из них точно работает?
К> ;-)
Me> на деле же, в первом случае из цикла дата выкручивается, во втором – нет цикла :-)

BAT-файлы весьма удобны для некоторых задач, весьма. Продолжаю их использовать для вытаскивания отчетов с компьютеров, где работает специальное ПО, вроде VIDA. Удобно иногда писать всякие автоматические конвенторы картинок или видео, некоторые задачи по автоматической архивации данных. Показанные выше примеры, как раз из одной такой задачи.

PS: Парсер – нехороший редиска, в примере под первым номером, если будете использовать, не должно быть пробелов между «% %».

[ ]

Добавить комментарий