Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 对于批处理文件中的If循环_Batch File - Fatal编程技术网

Batch file 对于批处理文件中的If循环

Batch file 对于批处理文件中的If循环,batch-file,Batch File,有人能帮我弄清楚为什么这不管用吗?我会模仿其他if循环,但这不起作用 echo Ping for /F "tokens=*" %%a in (%file%) do ( @ping %%a if "TTL=" > nul && ( >> %log1% echo %%a echo Ping Successful to %%a ) else ( >> %log2% echo %%a

有人能帮我弄清楚为什么这不管用吗?我会模仿其他if循环,但这不起作用

echo Ping
for /F "tokens=*" %%a in (%file%) do (
    @ping %%a 
    if "TTL=" > nul && (
        >> %log1% echo %%a
        echo Ping Successful to %%a
    ) else (
    >> %log2% echo %%a
    echo Ping failed to %%a
    )

)

这就是模仿的问题所在。looklike并不意味着worklike。如果
语法完全是胡说八道,而
ping
只执行“仅”ping,则无法处理其结果。如果语法正确,它将类似于:

echo Ping
for /F "tokens=*" %%a in (%file%) do (
    ping %%a |find "TTL=" >nul 
    if errorlevel 1 (
        >> %log2% echo %%a
        echo Ping failed to %%a
    ) else (
        >> %log1% echo %%a
        echo Ping Successful to %%a
    )
)
或者保留您的
&&
/
| |
语法:

echo Ping
for /F "tokens=*" %%a in (%file%) do (
    ping %%a |find "TTL=" >nul && (
        >> %log1% echo %%a
        echo Ping Successful to %%a
    ) || (
        >> %log2% echo %%a
        echo Ping failed to %%a
    ) 
)

这就是模仿的问题所在。looklike并不意味着worklike。如果
语法完全是胡说八道,而
ping
只执行“仅”ping,则无法处理其结果。如果语法正确,它将类似于:

echo Ping
for /F "tokens=*" %%a in (%file%) do (
    ping %%a |find "TTL=" >nul 
    if errorlevel 1 (
        >> %log2% echo %%a
        echo Ping failed to %%a
    ) else (
        >> %log1% echo %%a
        echo Ping Successful to %%a
    )
)
或者保留您的
&&
/
| |
语法:

echo Ping
for /F "tokens=*" %%a in (%file%) do (
    ping %%a |find "TTL=" >nul && (
        >> %log1% echo %%a
        echo Ping Successful to %%a
    ) || (
        >> %log2% echo %%a
        echo Ping failed to %%a
    ) 
)

嗯。您尚未处理ping命令的结果。您不能在批处理文件中使用
进行比较-您需要使用
GTR
。您可以在类似这样的if条件中使用条件执行。@npocmaka我不认为,
用于比较,但要将输出重定向到NUL(请参阅我的答案),请考虑在发布问题之前阅读您试图使用的命令的帮助。通过在命令名后键入正斜杠和问号,可以获得任何Windows控制台命令的帮助
如果/?
@bill\u steward delayedexpansion在此处不需要,并且cmd完全能够执行此功能。请阅读并阅读。您希望该代码具体做什么?你说“不行”是什么意思。您尚未处理ping命令的结果。您不能在批处理文件中使用
进行比较-您需要使用
GTR
。您可以在类似这样的if条件中使用条件执行。@npocmaka我不认为,
用于比较,但要将输出重定向到NUL(请参阅我的答案),请考虑在发布问题之前阅读您试图使用的命令的帮助。通过在命令名后键入正斜杠和问号,可以获得任何Windows控制台命令的帮助
如果/?
@bill\u steward delayedexpansion在此处不需要,并且cmd完全能够执行此功能。请阅读并阅读。您希望该代码具体做什么?你说“不行”是什么意思?