mia attuale linea di codice del lotto è:Scoppio di PER in lotti
for /L %%a in (8000,1,8100) do netstat /a /n | find "%%a" | find "LISTENING" || set tmp_freeport=%%a && goto found
L'idea è quella di trovare un porto franco che verrà utilizzato per l'ascolto, all'interno della gamma di 8000-8100.
Attualmente, ho porta 8000 in uso, quindi lo script per andare dal 8001.
Dopo il ciclo, %tmp_freeport%
è pari a 8001, come dovrebbe essere, e il suo valore viene utilizzato in seguito in modo corretto.
Il problema è che il loop continua a funzionare indipendentemente. netstat
viene chiamato per cercare tutte le 101 porte dell'intervallo, che è ovviamente inefficace e indesiderato, perché la ricerca deve essere completata prima che lo script possa continuare.
Qualcuno può dirmi come uscire da un ciclo di ciclo FOR?
(In alternativa, se c'è un modo migliore di trovare un porto franco, si prega di vedere il mio somewhat-related question)
hai provato la mia risposta? ha funzionato? –