标题: [文本处理] 批处理获取网关ip并绑定mac地址,如何调用for的参数值 [打印本页]
作者: sk007 时间: 2017-8-6 14:49 标题: 批处理获取网关ip并绑定mac地址,如何调用for的参数值
本帖最后由 pcl_test 于 2017-8-7 21:30 编辑
请教高手高高手,用for来自动识别并绑定网关,不会调用
arp -d
for /f "tokens=1,2 delims= " %%a in ('arp -a ^|find "动态"') do echo %%a %%b
这句没有问题
for /f "tokens=2 delims=: " %%i in ('netsh interface ipv4 show neighbors ^|find "本地连接"') do (
netsh interface ipv4 add neighbors "%%i" "%%a" "%%b"
)
想在第二次for中调用第一次的红色结果,请教大神怎么做????
作者: 523066680 时间: 2017-8-6 18:51
第一个 for .... do (
set VAR1="%%a”
set VAR2="%%b"
)
第二个 for 中改为 netsh interface ipv4 add neighbors "%%i" %VAR1% %VAR2%
作者: sk007 时间: 2017-8-6 21:09
按照这样改过,参数还是没有传递过来??是我哪里输错了吗?
作者: 523066680 时间: 2017-8-6 22:04
第二个for
%VAR1% %VAR2%
而不是
VAR1 VAR2
作者: 老刘1号 时间: 2017-8-6 23:26
- arp -d
- for /f "tokens=1,2 delims= " %%a in ('arp -a ^|find "动态"') do ^
- for /f "tokens=2 delims=: " %%i in (
- 'netsh interface ipv4 show neighbors ^|find "本地连接"'
- ) do netsh interface ipv4 add neighbors "%%i" "%%a" "%%b"
复制代码
作者: sk007 时间: 2017-8-7 08:54
回复 4# 523066680
用了%VAR1%,返出的值为空
作者: 523066680 时间: 2017-8-7 10:03
哦,请忽略我的方案. 参考5楼
作者: sk007 时间: 2017-8-7 10:17
回复 5# 老刘1号
也是一闪而过,arp -a结果网关还是动态
应该是静态了才对
作者: huyou96 时间: 2017-8-7 14:34
不太明白你所言自动识别并绑定网关是要咋样做?
发帖时其实要不厌其繁,说的越唠叨越详尽就越好,人家别人就越明白你的意思。
我这里给出一个直接在命令行ping默认网关的实例如下:- for /f "delims={}" %g in ('wmic nicconfig get DefaultIPGateway ^| findstr [0-9]') do ping %~g
复制代码
如果想要在批处理文件里用这句指令,就要用到双百分号,就是说头个百分号是做转义字符用的,可用记事本将之存盘为 PingDefaultGateway.bat 文件,示例如下:- for /f "delims={}" %%g in ('wmic nicconfig get DefaultIPGateway ^| findstr [0-9]') do ping %%~g%
复制代码
不知你所说的“网关”是否指的是这个默认网关?不知我上面给的ping默认网关的示例是否能给你些帮助或启示?能够直接改改就能供你使用了?祝好运伴你!
作者: sk007 时间: 2017-8-7 19:48
本帖最后由 sk007 于 2017-8-7 19:50 编辑
是的是默认网关,我以后发求助贴时会注意语句的详细。
谢谢各位给我的解答,原来是批处理中第二个for得不到第一个for中传递是因为用了arp -d删除了,所以arp -a中的值为空,后来加上一个延时的语句,等到arp-a有值就可以了,非常感谢各位的热心帮助。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |