Как организовать цыкл в ДОСе
От: Аноним  
Дата: 12.11.08 10:18
Оценка:
Здравствуйте!

У меня проблема. Я пишу скрипт для ДОС и мне надо организовать в нём цыкл. Он должен бежать %2 раз: %2 я передаю в команде.

:: Start of loop
:loop_test
......... Мои команды ..........

:: Adding to counter i the 1, and test: If the counter is more then the number of tests
SET i=i+1
:: echo $i$
IF i==%2 GOTO clear
GOTO loop_test

:clear

Но это сравнение не функционирует.
Помогите пожалуйста!
Re: Как организовать цыкл в ДОСе
От: quodum  
Дата: 12.11.08 10:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте!


А>У меня проблема. Я пишу скрипт для ДОС и мне надо организовать в нём цыкл. Он должен бежать %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, в которой проценты можно опускать.
Re[2]: Как организовать цыкл в ДОСе
От: Аноним  
Дата: 17.11.08 14:30
Оценка:
Здравствуйте, 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, в которой проценты можно опускать.
Re: Как организовать цыкл в ДОСе
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 18.11.08 01:22
Оценка:
Здравствуйте, Аноним, Вы писали:

[offtop]
Вот смотрю я на список последних тем — "[CryptoAPI] Цыфровая подпись. Сертификаты.", "Как организовать цыкл в ДОСе" — и как-то не по себе становится... Я знаю, что правилами это запрещено, но тем не менее задам вопрос, потому как такие ошибки ИМХО уже переходят все грани — "А что авторы этих топиков делали в школе, когда объясняли это простейшее правило?"
[/offtop]
[КУ] оккупировала армия.
Re[2]: Как организовать цыкл в ДОСе
От: Кодёнок  
Дата: 18.11.08 07:04
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Вот смотрю я на список последних тем — "[CryptoAPI] Цыфровая подпись. Сертификаты.", "Как организовать цыкл в ДОСе" — и как-то не по себе становится... Я знаю, что правилами это запрещено, но тем не менее задам вопрос, потому как такие ошибки ИМХО уже переходят все грани — "А что авторы этих топиков делали в школе, когда объясняли это простейшее правило?"


Грамотность не зависит от знания правил. Обсуждение уже было.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.