批处理文件::如果lss无法正常工作

时间:2015-10-27 11:05:23

标签: batch-file if-statement dos ping

我的代码非常自我解释:

@echo off
set /a n=0
:doitagain
set /a n+=1
echo Pinging : 10.0.0.%n%
ping 10.0.0.%n%
if %n% lss 255 goto doitagain

pause >nul

但它始终ping 10.0.0.1所以我想这里需要微小的调整......

1 个答案:

答案 0 :(得分:1)

正如npocmaka在他的评论中所述,当您处理在循环内修改的变量时,您总是需要延迟扩展。第一步是在代码开头添加SETLOCAL EnableDelayedExpansion somwhere。第二步是使用!varname!而不是%varname%来访问在循环内修改的变量。在你的情况下,它将是这样的:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
...
set /a n=!n!+1
echo Pinging : 10.0.0.!n!
ping 10.0.0.!n!
if !n! lss 255 goto doitagain
...