2013-04-23 6 views
0

Я пытаюсь написать действительно основной пакетный файл, но я застрял на этой проблеме. Я написал:FOR цикл в пакетном файле

для% п в (1 1 10) сделать паузу

За то, что я понимаю, это должно открыть окно терминала и пауза в 10 раз. Проблема в том, что когда я запускаю пакет, окно терминала только начинает мигать и ничего не делает. Что я делаю не так?

+0

Когда окно терминала «мигает», это, вероятно, отображая сообщение об ошибке, что вы просто не хватает времени, чтобы читать. Добавьте 'pause' в конец вашего командного файла, чтобы заставить его ждать, пока вы не нажмете Enter; или еще лучше, откройте окно командной строки и запустите пакетный файл, чтобы он не открывал новое окно каждый раз. –

ответ

2

Ваша первая проблема - единственный %. Это правильный синтаксис для запуска этого непосредственно в командной строке, но в пакетном файле вам нужно использовать %%. См. help for.

Кроме того, код, который вы написали будет вызывать только pause три раза: один раз для 1 после того, как во второй 1, и один раз для 10. Если вы хотите, чтобы петли от 1 до 10 шаговый 1, вам нужно использовать /l:

for /l %%n in (1 1 10) do pause 
+0

Спасибо! Кстати, за цикл вы забыли/l после the;) Я не думаю, что вам даже нужны запятые, если вы положите его ... –

+0

Вы правы, я забыл '/ l' и запятые не нужны! Я даже не пробовал его без запятых, поскольку в документах указывается, что они разделяются запятыми. Удивительно, но факт! :-) Я обновил свой ответ. Пожалуйста, отметьте его как «Принято», если он правильно ответит на ваш вопрос. –

+0

Вы можете использовать каждый разделитель по умолчанию: '; =,' – Endoro

Смежные вопросы