Командная строка Windows - PullRequest
1 голос
/ 13 марта 2010

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

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

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

Ответы [ 2 ]

4 голосов
/ 13 марта 2010

Оберните его в другой экземпляр 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 голосов
/ 13 марта 2010

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

...