Batch file 批处理文件中的某些代码部分未执行

Batch file 批处理文件中的某些代码部分未执行,batch-file,Batch File,我在此批处理文件中遇到问题: @echo off setlocal enableextensions EnableDelayedExpansion for /f "tokens=*" %%l in (input1.txt) do ( ping %%l> "Result.txt" set "var=HI" set "var1=hi" set "var2=1"; FIND /c "Destination host unreachable." Resu

我在此批处理文件中遇到问题:

@echo off
setlocal enableextensions EnableDelayedExpansion

for /f "tokens=*" %%l in (input1.txt) do (
    ping %%l> "Result.txt"

    set "var=HI"
    set "var1=hi"
    set "var2=1";

   FIND /c "Destination host unreachable." Result.txt && ( set "var2=2") || ( echo HI)
   FIND /c "Request timed out." Result.txt && ( set "var2=2" ) || (echo HI)

   if "!var2!" EQU "2" (echo %%l>>"failure.txt")

    # This block doesn't work
    if "!var2!" EQU "1" (
        for /f "tokens=*" %%i in (Result.txt) do ( set var=%%i)
        for /f "tokens=9" %%j in ("%var%") do (set var1=%%j)
        set var1="!var1:~0,-2!"
        if "!var1!" LSS "1000" (echo %%l >> "success.txt") ELSE (echo %%l >>"timeout.txt")
    )
)
endlocal

上面的代码用于ping服务器的批量列表,并根据测试结果将服务器重定向到成功或失败的文本文件。这里的问题是由
rem
备注标记的代码不起作用。这一部分似乎没有执行。此外,var1未被评估。提前感谢。

这会给你带来成功或失败

@echo off
for /f "delims=" %%a in (input1.txt) do (
  ping %%l >nul
  if errorlevel 1 (
        >>"failure.txt" echo %%l
     ) else (
        >>"success.txt" echo %%l
  )
)
代码中的一个问题是,通过在
“!var1!”
和数字周围使用引号强制进行字符串比较

周围还有两组引号!var1