GORA2
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Maza Faka Цитата: Посмотри справку "SET /?" для чего нужно применять "setlocal enabledelayedexpansion" | Поверьте на слово, для чего я применяю "setlocal enabledelayedexpansion" я знаю. Можно бы было не применять - не стал бы этого делать. Цитата: У меня они одинаковы и при включенном и при выключенном... | По умолчанию "delayedexpansion" ОТКЛЮЧЕНЫ и добавление в батник "setlocal disabledelayedexpansion", если до этого не было "setlocal enabledelayedexpansion" конечно ничего не изменит! Я с большим уважением отношусь к Вам и не ставлю под сомнение ваши знания, но истина, как говорят, дороже... Вот тест код: Код: @echo off setlocal enabledelayedexpansion set fstbilddat=17.12.2006 set dat=%date% call ate2day echo. set autobuild=%w% set dat=%fstbilddat% call ate2day set /a autobuild=%autobuild%-%w% echo %%autobuild%%=%autobuild% pause>nul goto :eof ate2day set /a y=%dat:~6,4%&set /a m=1%dat:~3,2%-100&set /a d=1%dat:~0,2%-100 set /a w=(%y%-1901)*365+(%y%-1901)/4+%d%-1+(!(%y% %% 4))*(!((%m%-3)^&16)) echo %d% %m% %y% %w% set /a w=(%w%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3)) echo %d% %m% %y% %w% goto :eof | Результат его таков: Цитата: 1 6 2007 38716 1 6 2007 38899 17 12 2006 38367 17 12 2006 38699 %autobuild%=200 | Теперь закомментируем строку "setlocal enabledelayedexpansion" и результат будет: Цитата: 1 6 2007 38716 1 6 2007 38867 17 12 2006 38367 17 12 2006 38701 %autobuild%=166 | И Вы будете настаивать, что разницы нет!? Цитата: но нет никакого упоминания про "setlocal enabledelayedexpansion" | Зато там есть "setlocal" !!! К сожалению в описании нет варианта использования этой команды без параметров . Я ее трактую как сброс "enabledelayedexpansion" в исходное состояние т.е. в "setlocal disabledelayedexpansion". Не стану настаивать на своей правоте, но, приведенный выше, пример заставляет меня думать, что я все таки прав. Да и как будут восприниматься символы '!' (восклицательный знак) при "enabledelayedexpansion"!? Ведь это может быть и "признак" переменной! Незря же автор указал в начале своего батника "setlocal disabledelayedexpansion" !!! Обидеть Вас, не было моей задачей . Просто хотел узнать как/чем можно заменить "двоичную" математику в последних двух строках set /a w=... !? С уважением... |