Batch file 批处理在多次ping尝试后崩溃

Batch file 批处理在多次ping尝试后崩溃,batch-file,ping,Batch File,Ping,如果我能ping其中的一些地址,我会尝试从类似地址的列表中找出它们。 但是在大约304次ping尝试/失败后,脚本就崩溃了 @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

如果我能ping其中的一些地址,我会尝试从类似地址的列表中找出它们。 但是在大约304次ping尝试/失败后,脚本就崩溃了

@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
函数是递归函数,并且已达到批处理脚本允许的堆栈限制,该限制通常非常低


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

您不能ping网址或特定端口,只能ping服务器:
ping address.servehttp.com
您应该使用
Set“port=0”
而不是
Set/a port=0
,和
Set/A PORT+=1
Set/A PORT=PORT+1
而不是
Set/A PORT=%PORT%+1
@Stephan你能告诉我怎样才能ping这些吗。我的意思是,如果ping不起作用,我还能做些什么来完成吗?将
if%PORT%LEQ 65535(call:start)else pause
更改为
if%PORT%LEQ 65535(goto:start)else pause应该就足够了。