![]() |
Случайное значение переменной в цикле
Доброе время суток дорогие форумчане!
Возникла проблема с выводом значения переменной из заданного диапазона, когда пингую определенный ip, переменная R10 не генерируется по указанным правилам (ниже приведен код, буду благодарен если подскажете что поменять): Код:
@echo off |
Код:
ping -n !r10! … |
Iska, так удивительно просто оказалось?) Спасибо, работает! А есть ли информация по этим спец символам где-либо? Так в следующий раз и не соображу какие в какой ситуации применять "%" или "!".
|
Скажем так: всё упирается в понятие «оператор»/«инструкция»/«команда» и тот факт, что переменные окружения в %…% раскрываются в момент его исполнения. То есть, %r10% раскрывается однократно в момент начала исполнения конструкции For /L %%i In (1,1,10) Do (…). И, поскольку в этот момент переменной окружения r10 ещё не существует — получается пустое место.
Чтобы переменная окружения раскрывалась тогда, когда происходит исполнение команды ping -n %r10% 127.0.0.1 > nul, требуется задание отложенного раскрытия переменных окружения (setlocal enabledelayedexpansion) и использования символов !…! вместо %…%. |
Можно без setlocal enabledelayedexpansion
Код:
@Echo Off Код:
@Echo Off |
megaloman, благодарю за предоставление иных подходов!)
Iska, Прошу прощения за оффтоп, в следующий раз уже создам новую тему, но думаю вопрос тоже не будет сильно сложным для понимающих, одним из решений уже обзавелся, если можете подсказать иной способ или дополнить имеющийся буду вновь признателен. Имеется батник, внутри него прописана команда на создание другого батника (или текстового документа, содержащего команды, которые могут быть исполнены в случае изменения расширения с .txt на .bat), проблема заключается в том, что при простом экранировании символов, читаемость чресчур снижается, и хотелось бы узнать, есть ли способ более изящный? В качестве примера, на просторах интернета нашёл одно решение, но его проблема в том, что после текста, который собираемся скопировать в новый файл, уже не пропишешь новых команд (или я не знаю как их прописать). А после этого текста будут ещё команды, которые не должны быть скопированы. Например два таких скрипта идущих подряд. Надеюсь вы понимаете о чем я. А вот и сам код из сети: Код:
@echo off |
patrickfox,
ИМХО, это новая тема.
Код:
@Echo Off |
Цитата:
|
megaloman, хорошо, создам новую, а то появились дополнительные вопросы уже.
|
patrickfox, а вы спросите в старой, Iska ссылку дал
|
megaloman, Там, как я понял, не совсем именно то, что нужно, в моем случае необходим многоуровневый файл.
|
Время: 17:03. |
Время: 17:03.
© OSzone.net 2001-