标题: 延时变量的问题
[打印本页]
作者: jun19841
时间: 2010-12-6 14:46
标题: 延时变量的问题
@echo off&setlocal enabledelayedexpansion
for /f "usebackq tokens=2 delims=:" %%i in (`ipconfig ^| find "Default Gateway"`) do set gw=%%i
for /f "usebackq tokens=2 delims= " %%i in (`arp -a ^| findstr "\<!gw!\>"`) do echo %%i
pause
为什么在findstr "\<10.0.0.1\>"`
则可以获取到网关的MAC地址
而用延时变量 !gw! 就无法获取
[
Last edited by jun19841 on 2010-12-6 at 14:58 ]
作者: Hanyeguxing
时间: 2010-12-6 15:12
看我这里
http://www.cn-dos.net/forum/viewthread.php?tid=52933&fpage=2
11楼的说明!~
是你在set gw=%%i就已经把空格带进去了
结果就是“空格+Default Gateway”
正确应该这样写:
@echo off
for /f "tokens=2 delims=:" %%i in (`ipconfig ^| find "Default Gateway"`) do set gw=%%i
for /f "tokens=2 delims= " %%i in (`arp -a ^| findstr "\<%gw:~1%\>"`) do echo %%i
pause
%gw:~1%用于把最前面带进去的空格去掉
[
Last edited by Hanyeguxing on 2010-12-6 at 15:16 ]
作者: jun19841
时间: 2010-12-6 15:20
感谢 Hanyeguxing指点,学习了~

作者: jun19841
时间: 2010-12-6 15:21
嗯,插入call 也可以调用,学习了~

作者: jun19841
时间: 2010-12-6 15:24
for /f "usebackq tokens=2 delims= " %%i in (`arp -a ^| findstr "\<call !gw!\>"`) do echo %%i
for /f "usebackq tokens=2 delims= " %%i in (`arp -a ^| findstr "\<!gw:~1!\>"`) do echo %%i
作者: acaigg
时间: 2010-12-25 12:31
学习一下。