Moja obecna linia kodu wsadowym jest:wyrwanie się z FOR w partii
for /L %%a in (8000,1,8100) do netstat /a /n | find "%%a" | find "LISTENING" || set tmp_freeport=%%a && goto found
Chodzi o to, aby znaleźć wolny port, który będzie używany do słuchania, w przedziale 8000-8100.
Obecnie mam port 8000 w użyciu, więc skrypt powinien iść do 8001.
Po pętli %tmp_freeport%
jest równa 8001, jak powinno być, a jej wartość jest używana później poprawnie.
Problem polega na tym, że pętla działa niezależnie. netstat
jest wywoływany w celu wyszukania wszystkich 101 portów w zakresie, co jest oczywiście nieefektywne i niechciane, ponieważ wyszukiwanie musi zakończyć się, zanim skrypt będzie mógł kontynuować.
Czy ktoś może mi powiedzieć, jak wyjść z partii pętli FOR?
(Alternatywnie, jeśli istnieje lepszy sposób na znalezienie wolnego portu, proszę zobaczyć moje somewhat-related question)
Czy wypróbowałeś moją odpowiedź? zadziałało? –