我当前的批处理代码如下:
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循环吗?
(或者,如果有更好的方法找到空闲端口,请参见我的相关问题)