Здравствуйте, Аноним, Вы писали:
А>Здравствуйте!
А>У меня проблема. Я пишу скрипт для ДОС и мне надо организовать в нём цыкл. Он должен бежать %2 раз: %2 я передаю в команде.
Реально для ДОСа, или всё-таки для командного интерпретатора Win2K и старше (cmd.exe)?
Если второе, то можно так:
for /L %%I in (1,1,%2) do (
rem тело цикла
)
Или оставить твой код, поправив инкремент i следующим образом:
set /a i=i + 1
Если же нужно именно для ДОСа, то ты попал. Инкремент придётся записать таким образом:
rem начиная с максимально возможного значения %2 (пусть будет, к примеру, 100)....
if %i%==99 set i=100
if %i%==98 set i=99
....
if %i%==2 set i=3
if %i%==1 set i=2
А, и ещё. Чтобы получить значение переменной i, надо писать %i% (а не i или $i$). Единственное исключение -- конструкция set /a, в которой проценты можно опускать.
Здравствуйте, quodum, Вы писали:
Большое спасибо!
Q>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте!
А>>У меня проблема. Я пишу скрипт для ДОС и мне надо организовать в нём цыкл. Он должен бежать %2 раз: %2 я передаю в команде.
Q>Реально для ДОСа, или всё-таки для командного интерпретатора Win2K и старше (cmd.exe)?
Q>Если второе, то можно так:
Q>Q>for /L %%I in (1,1,%2) do (
Q> rem тело цикла
Q>)
Q>
Q>Или оставить твой код, поправив инкремент i следующим образом:
Q>Q>set /a i=i + 1
Q>
Q>Если же нужно именно для ДОСа, то ты попал. Инкремент придётся записать таким образом:
Q>Q>rem начиная с максимально возможного значения %2 (пусть будет, к примеру, 100)....
Q>if %i%==99 set i=100
Q>if %i%==98 set i=99
Q>....
Q>if %i%==2 set i=3
Q>if %i%==1 set i=2
Q>
Q>А, и ещё. Чтобы получить значение переменной i, надо писать %i% (а не i или $i$). Единственное исключение -- конструкция set /a, в которой проценты можно опускать.