我当前的批处理代码行是:
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 循环?
(或者,如果有更好的方法来寻找自由港,请参阅我的相关问题)