YuS_two
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Подробнее... Начинаю читать с конца топика... ну, награфоманили... Pasha_ZZZ Цитата: Да, конечно, я опечатался, писал утром, второпях, но в батнике у меня всё правильно было, да и проверить ведь это легко... Smitis Цитата: Я вроде уже объяснил, как разбирается этот вызов, не? | Я обязан читать всё, что Вы напишете? И Ваше заявление, звучит как-то претензионно - Вы работник майкрософт? Ну, ок, прочитаю, отпишусь... просто тут слишком много текста за ночь появилось и не всё ещё успел прочитать... Добавлено: Smitis Цитата: Ничего загадочного. На выполнение идёт for %A in (a) do call echo %%A% так как переменные уже раскрыты, то при выполнении for подставляется только %A со значением a, остальные знаки процента роли уже не играют, это обычные символы. Далее выполняется call echo %a% Новая копия процессора заново раскрывает переменные, проверяет синтаксис, выполняет, возвращает управление. | Ага, вот... ну, вполне согласен с таким разбором, добавить нечего. И кроме того, его легко проверить-отладить, например, так: Код: C:\DOS\EXAMPLE\TEST_temp>set a=b C:\DOS\EXAMPLE\TEST_temp>for %A in (e) do call echo %%A% C:\DOS\EXAMPLE\TEST_temp>call echo %e% Режим вывода команд на экран (ECHO) включен. | - это результат выполнения, где всё достаточно наглядно и видно на каком этапе, и что раскрывается-подставляется. Т.е. как таковой, переменной %a% там нигде не раскрыто, если нет символа "a" в скобках, в качестве "набора", который при раскрытии становится %a%. [/more] | Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 11:11 22-04-2016 | Исправлено: YuS_two, 12:00 22-04-2016 |
|