Пакетный файл не выходит из цикла правильно? - PullRequest
0 голосов
/ 10 мая 2009

Я работаю над пакетным файлом, чтобы собрать MAC-адреса двух моих клиентов подсетей, однако по какой-то причине мой пакетный файл неправильно завершает первый цикл, поэтому второй цикл не выполняется и, следовательно, остальная часть Сценарий не выполняется. Любые идеи о том, почему это происходит?

for /L %%i in (1,1,254) do ping.bat 192.168.232 %%i
for /L %%i in (1,1,254) do ping.bat 192.168.233 %%i
REM Some other stuff goes on here but the second loop never gets executed

Большое спасибо заранее

РЕДАКТИРОВАТЬ: ping.bat содержит просто это:

nbtstat -A %1.%2

Чтобы получить MAC-адрес через NetBIOS

Ответы [ 2 ]

2 голосов
/ 10 мая 2009

Запуск пакетного файла отменяет «материнский» пакетный файл. Хотя она, кажется, заканчивает текущую линию; Ваш первый цикл FOR фактически выполняется 254 раза.

Добавление оператора CALL исправит это:

for /L %%i in (1,1,254) do call ping.bat 192.168.232 %%i
for /L %%i in (1,1,254) do call ping.bat 192.168.233 %%i
echo Test complete!

До введения оператора CALL это было решено путем запуска дочернего пакетного файла в новом экземпляре интерпретатора команд:

for /L %%i in (1,1,254) do COMMAND /C ping.bat 192.168.232 %%i
0 голосов
/ 10 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...