2010-03-13 2 views
1

Кто-нибудь знает, как выйти из цикла for, когда он вводится непосредственно в командной строке Windows? Я знаю, что вы можете использовать gotos и ярлыки, чтобы вырваться из него, когда он находится в пакетном файле, но я не могу найти ничего о выходе из одного в командной строке. Вот простой пример:Командная строка Windows

C:> for /l %i in (1,0,1) do @ping -n 1 google.com || (echo ^G & msg user "Google is down!" & QUIT) 

Это должно бесконечно ping google.com. Если он когда-либо терпит неудачу, он подает звуковой сигнал (echo^G), отображает окно сообщения пользователю пользователя, в котором говорится, что «Google не работает!» И QUIT. Однако я не знаю, как это сделать. Думаю, я мог бы сделать что-то вроде taskkill/f/im cmd.exe, но я искал что-то более элегантное. Какие-нибудь советы?

ответ

4

Заверните его в другой экземпляр cmd и использовать exit:

cmd /c "for /l %i in (1,0,1) do @ping -n 1 google.com || (echo ^G & msg user "Google is down!" & exit)" 
0

Попробуйте Exit вместо Quit

+1

только половина ответа. Это мгновенно убьет ваш сеанс, что часто не то, что вы хотите, работая в командной строке :-) – Joey