原帖由 zc584267913 于 2010-5-19 11:27 发表
@echo off&setlocal enableextensions
for /f "tokens=3*" %%i in ('ipconfig^|find /i "Ethernet adapter"') do set/a bb+=1&call set zc_%%bb%%=%%i&set zc_
请问为什么一定要用call set才能获取正确的值?而无法使用延迟变量来获取? 1,可以使用变量延迟
2,你的脚本错误在于setlocal enabledelayedexpansion打错了。
正确写法:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=3*" %%i in ('ipconfig^|find /i "Ethernet adapter"') do set/a bb+=1&set zc_!bb!=%%i
- set zc_
- pause
复制代码 或:- @echo off
- for /f "tokens=3*" %%i in ('ipconfig^|find /i "Ethernet adapter"') do set/a bb+=1&call set zc_%%bb%%=%%i
- set zc_
- pause
复制代码 set zc_不要和for在一行,如果想要放一行,需要这样写:- @echo off&setlocal enabledelayedexpansion
- (for /f "tokens=3*" %%i in ('ipconfig^|find /i "Ethernet adapter"') do set/a bb+=1&set zc_!bb!=%%i)&set zc_
- pause
复制代码 或:- @echo off
- (for /f "tokens=3*" %%i in ('ipconfig^|find /i "Ethernet adapter"') do set/a bb+=1&call set zc_%%bb%%=%%i)&set zc_
- pause
复制代码
[ 本帖最后由 hanyeguxing 于 2010-5-19 12:38 编辑 ] |