中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 10:12
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 帮我解释一下这段FOR命令。。 查看 719 回复 1
楼 主 帮我解释一下这段FOR命令。。 发表于 2007-04-30 22:21 ·  中国 浙江 湖州 电信
初级用户
积分 62
发帖 32
注册 2006-11-08 11:46
19年会员
UID 70030
性别 男
状态 离线
set dbg=
@echo %dbg% off&setlocal enabledelayedexpansion
:: code by qasa copyright@qknet 2:16 2007-4-30
set no_=0
mode con cols=40 lines=10&color fc
//这段的FOR是什么意思?tokens=12? delims= ??不明白?
for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do (
set mac=%%i
//set mac=!mac:~0,-1! ????
set mac=!mac:~0,-1!
)
// ????
for /f "tokens=1-3 delims==|" %%j in (MAC.INI) do (
set mac_=%%j
set ip_=%%k
set sm_=%%l
if !mac! equ !mac_! (
call :set_ !mac_! !ip_! !sm_!
set /a no_+=1
)
)
if "!no_!"=="0" (
echo.&echo MAC.ini中没有此机的MAC地址,将发送到工作机上......
echo %date% %time%新发现的MAC地址:>>NewMAC.ini&echo !mac! >>NewMAC.ini
echo.&echo 已经发送到工作机! ! !
)
start shutdown -r -t 40
echo.
set/p zz_= 按Q键退出关机状态:
if /i !zz_! equ q (start shutdown -a)
ping/n 5 127.1>nul
exit /b

:set_
echo %1 %2 %3
set yy_=%3
echo.&echo 正在为%yy_:~1,3%号设置IP、机号...... 请稍候
for /f "tokens=1-4 delims==|" %%e in (DNS.ini) do (
set dns1_=%%e
set dns2_=%%f
set workgate_=%%g
set zwym_=%%h
)
for /l %%w in (1,1,2) do (
netsh interface IP Set Address "本地连接" Static %2 %zwym_% %workgate_% 1 >nul
)
netsh interface IP Set Dns "本地连接" static %dns1_% >nul
netsh interface ip add dns "本地连接" %dns2_% >nul
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName /v "ComputerName" /t REG_SZ /d %3 /f >nul 2>NUL
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v "ComputerName" /t REG_SZ /d %3 /f >nul 2>NUL
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "Hostname" /t REG_SZ /d %3 /f >nul 2>NUL
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d %3 /f >nul 2>NUL
echo.&echo 设置完毕
goto :eof
2 发表于 2007-05-03 12:05 ·  中国 广东 中山 电信
初级用户
积分 44
发帖 20
注册 2007-05-02 21:53
19年会员
UID 87305
性别 男
状态 离线
//这段的FOR是什么意思?tokens=12? delims= ??不明白?
for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do (

将""'ipconfig /all^|find /i "Physical Address""执行结果.使用空格为定界符(用空格分成几段)取得其中的第12个符号(段).
论坛跳转: