标题: [网络连接] 批处理如何PING地址后赋值给变量? [打印本页]
作者: 帝尊 时间: 2022-9-21 22:50 标题: 批处理如何PING地址后赋值给变量?
- IF PING -W 10 -N 3 %SSER1%|FIND "TTL" (
- SET "SERVER=01" & GOTO :START
- ) ELSE IF PING -W 10 -N 3 %SSER2%|FIND "TTL" (
- SET "SERVER=02" & GOTO :START
- ) ELSE IF PING -W 10 -N 3 %SSER3%|FIND "TTL" (
- SET "SERVER=03" & GOTO :START
- ) ELSE (
- GOTO :TIMEOUT
- )
复制代码
有三个IP地址,ping通后赋值给变量,可以这样写吗?- PING %SSER1% %_NUL_% && ( SET "SERVER=01" & GOTO :START )||PING %SSER2% %_NUL_% && ( SET "SERVER=01" & GOTO :START )||PING %SSER3% %_NUL_% && ( SET "SERVER=01" & GOTO :START )||GOTO :TIMEOUT
复制代码
感觉第二条有点乱写了。
作者: Echo11 时间: 2022-9-22 10:19
回复 1# 帝尊
看看符不符合你胃口- @ECHO OFF
- setlocal EnableDelayedExpansion
- for /L %%i in (1,1,3) do PING -W 10 -N 3 !SSER%%i! | find "TTL" >nul 2>nul && ( SET "SERVER=0%%i" & GOTO :START)
- :TIMEOUT
- ECHO.do TIMEOUT thing here...
- pause
- exit /B
-
- :START
- ECHO.do START thing here...
- pause
- exit /B
复制代码
这个是根据你例子只有3个server IP写的,3 如果是 未知数,其实也可以改的。你可以自己想想,具体看你需求,你的是固定数,还剩变量。
作者: Batcher 时间: 2022-9-22 11:52
回复 1# 帝尊 - @echo off
- set "SSER1=10.0.2.1"
- set "SSER2=10.0.2.123"
- set "SSER3=10.0.2.124"
- setlocal enabledelayedexpansion
- for /l %%i in (1,1,3) do (
- ping -w 10 -n 3 !SSER%%i! | find "TTL" >nul 2>&1
- if errorlevel 1 (
- REM echo Bad server
- ) else (
- set "server=0%%i"
- goto :start
- )
- )
- goto :timeout
-
- :start
- echo %server%
- goto :end
-
- :timeout
- echo Timeout
- goto :end
-
- :end
- pause
复制代码
作者: 帝尊 时间: 2022-9-22 14:37
本帖最后由 帝尊 于 2022-9-22 16:30 编辑
回复 2# Echo11
IP地址是固定的。赋值给了三个变量,但是用了这个以后,网线拔掉也是成功的。- SET "SSER1=10.1.1.1"
- SET "SSER2=10.1.1.2"
- SET "SSER3=10.1.1.3"
-
- FOR /L %%I IN (1,1,3) DO PING -W 10 -N 3 !SSER%%I! | FIND "TTL" >NUL 2>NUL && ( SET "SERVER=0%%I" & GOTO :START )
- :START
- ECHO. PASS
- PAUSE
-
- :TIMEOUT
- ECHO. FAIL
- PAUSE
复制代码
作者: 帝尊 时间: 2022-9-22 14:39
回复 3# Batcher
我去试试,非常感谢。
作者: Echo11 时间: 2022-9-22 16:52
回复 4# 帝尊
....我给你的代码for下面默认是 timeout啊,你自己改掉了。你仔细看下,意思就是全部不通,那就继续执行 timeout部分,通了,就跳转 START 成功的部分
作者: WindCat 时间: 2022-9-23 19:39
你要是想知道通不通的话可以直接看errorlevel的值...
作者: 帝尊 时间: 2022-9-23 22:55
回复 6# Echo11
已经修改好了。谢谢。
作者: 帝尊 时间: 2022-9-23 22:56
回复 7# WindCat
嗯。看了的,修改好了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |