Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 用于批处理编程_Batch File - Fatal编程技术网

Batch file 用于批处理编程

Batch file 用于批处理编程,batch-file,Batch File,在批处理脚本中使用FOR时遇到问题 我的批处理文件包含以下内容: Echo off set max_page=2 for /l %%i IN (1,1,%max_page%) do ( echo. echo Page %%i off %max_page% echo ======================================================== echo page %%i :find_server set "result=true" echo page %%

在批处理脚本中使用FOR时遇到问题

我的批处理文件包含以下内容:

Echo off
set max_page=2
for /l %%i IN (1,1,%max_page%) do (
echo.
echo  Page %%i off %max_page%
echo  ========================================================
echo page %%i

:find_server
set "result=true"
echo page %%i
wget -S --spider -t 1 http://portal/ 2> check_portal.txt
echo page %%i
for /f "skip=1 tokens=4" %%b in ('findstr /L "Connecting" check_portal.txt') do set status=%%b
echo page %%i
if "%status%"=="failed:" set result=false
echo page %%i
if "%result%"=="false" (
    goto :find_server
)else goto :server_connected

:server_connected
for /f "skip=3 tokens=2 delims=/" %%c in ('findstr /L "Location: " check_portal.txt') do set server_portal_upd=%%c
echo page %%i
)
pause
 Page 1 off 2
 ========================================================
page 1
page 1
page 1
page 1
page 1
page %i
Press any key to continue . . .
结果:

Echo off
set max_page=2
for /l %%i IN (1,1,%max_page%) do (
echo.
echo  Page %%i off %max_page%
echo  ========================================================
echo page %%i

:find_server
set "result=true"
echo page %%i
wget -S --spider -t 1 http://portal/ 2> check_portal.txt
echo page %%i
for /f "skip=1 tokens=4" %%b in ('findstr /L "Connecting" check_portal.txt') do set status=%%b
echo page %%i
if "%status%"=="failed:" set result=false
echo page %%i
if "%result%"=="false" (
    goto :find_server
)else goto :server_connected

:server_connected
for /f "skip=3 tokens=2 delims=/" %%c in ('findstr /L "Location: " check_portal.txt') do set server_portal_upd=%%c
echo page %%i
)
pause
 Page 1 off 2
 ========================================================
page 1
page 1
page 1
page 1
page 1
page %i
Press any key to continue . . .
但如果删除下面的行,脚本将成功运行

:find_server
    set "result=true"
    echo page %%i
    wget -S --spider -t 1 http://portal/ 2> check_portal.txt
    echo page %%i
    for /f "skip=1 tokens=4" %%b in ('findstr /L "Connecting" check_portal.txt') do set status=%%b
    echo page %%i
    if "%status%"=="failed:" set result=false
    echo page %%i
    if "%result%"=="false" (
        goto :find_server
    )else goto :server_connected

    :server_connected
    for /f "skip=3 tokens=2 delims=/" %%c in ('findstr /L "Location: " check_portal.txt') do set server_portal_upd=%%c
为什么
第8行
出现在
第%i页
而不是
第1页
? 错在哪里?请纠正我。
非常感谢您的建议

标签
:查找服务器
等。终止
for
循环。尝试使用
call:subroutineName

顺便说一句,
else
关键字的两侧必须有一个空格