Здравствуйте, Аноним, Вы писали:
А>Здравствуйте!
А>У меня проблема. Я пишу скрипт для ДОС и мне надо организовать в нём цыкл. Он должен бежать %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, в которой проценты можно опускать.