Моя текущая строка батч-кода:
for /L %%a in (8000,1,8100) do netstat /a /n | find "%%a" | find "LISTENING" || set tmp_freeport=%%a && goto found
Идея состоит в том, чтобы найти свободный порт, который будет использоваться для прослушивания , в пределах 8000-8100.
В настоящее время у меня используется порт 8000, поэтому сценарий должен перейти на 8001.
После цикла %tmp_freeport%
равен 8001, как и должно быть, и его значение использоваться позже правильно.
Проблема в том, что цикл все равно продолжает работать. netstat
вызывается для поиска всех 101 порта в диапазоне, что явно неэффективно и нежелательно, поскольку поиск должен завершиться, прежде чем сценарий сможет продолжить работу.
Кто-нибудь может сказать мне, как выйти из цикла FOR?
(В качестве альтернативы, если есть лучший способ найти свободный порт, см. мой несколько связанный вопрос)