批处理文件中的比较结果不正确

批处理文件中的比较结果不正确

本批次:

@echo off
set _ping_cmd=ping -n 1 192.168.1.1

FOR /L %%G IN (1,1,60) DO (

    FOR /f "tokens=4 delims=(=" %%G IN ('%_ping_cmd% ^|find "loss"') DO (
        echo Result is [%%G]
        IF  %%G == " 0 " GOTO ON
    )
    timeout 60
)

:ON

产生了这个输出:

D:\>live

Result is [ 0 ]

Waiting for 52 seconds, press a key to continue ...

为什么?显然是%%GIS " 0 ",但goto没有执行。

答案1

显然,%%GIS " 0 ",但是goto没有执行。

您需要如下的引号%%G

IF  "%%G" == " 0 " GOTO ON

进一步阅读

相关内容