多次 ping 尝试后批处理崩溃

Batch just crashes after too many ping attempts

如果我能 ping 通其中一些地址,我会尝试找出类似地址的列表。 但是在大约 304 ping attemps/fails 之后,脚本就崩溃了。

@echo off

echo Start
set /A PORT=0
call:start
echo Finished
pause

:start
set /A PORT=%PORT%+1
set ADRESS=http://Adress.servehttp.com:%PORT%
ping /n 1 %ADRESS%
if %ERRORLEVEL% EQU 0 (echo %ADRESS% >> results.log)
if %PORT% LEQ 65535 (call:start) ELSE pause

您的 start 函数是递归的,并且您已达到批处理脚本允许的堆栈限制,该限制通常非常低。

您可以使用循环来解决这个问题。