中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 帮我解释一下这段FOR命令。。
作者:
标题: 帮我解释一下这段FOR命令。。 上一主题 | 下一主题
richercdw
初级用户





积分 62
发帖 32
注册 2006-11-8
状态 离线
『楼 主』:  帮我解释一下这段FOR命令。。

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



悠品网
2007-4-30 22:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bing614
初级用户





积分 44
发帖 20
注册 2007-5-2
状态 离线
『第 2 楼』:  

//这段的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个符号(段).

2007-5-3 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: