中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 08:51
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 同样的命令在FOR语句为何无法执行?
可打印版本  708 / 7
第1楼 sglxy 发表于 2008-04-27 13:26
中级用户 发帖 87 积分 397
同样的命令在FOR语句为何无法执行?
请朋友们帮我看看以下的命令:

(1)、 nbtstat /a %computername%|find /i "MAC Address">mac2.txt

(2)、For /f "delims== tokens=3" %%m in ('nbtstat /a %computername%^|find /i "MAC Address"') do echo 本机网卡的MAC地址是:%%m>MAC3.txt


在批处理文件中直接用第一条代码后可以正常执行,但是将第一行的代码用到FOR语句中(见第二条)就不能执行,这是为什么?难道我这第二条代码写错了?请明白的朋友指点一下,我先谢谢了……

[ Last edited by sglxy on 2008-4-27 at 01:27 PM ]
第2楼 sylovanas 发表于 2008-04-27 13:30
初级用户 发帖 42 积分 107
For /f "delims=" %%m in ('nbtstat /a %computername%^|find /i "MAC Address"') do echo 本机网卡的MAC地址是:%%m>MAC3.txt
第3楼 plp626 发表于 2008-04-27 13:33
银牌会员 发帖 1,020 积分 2,278
MAC Address = **-**-**-**-**-**
tokens=2吧
第4楼 sglxy 发表于 2008-04-27 13:44
中级用户 发帖 87 积分 397
谢谢sylovanas朋友,我的意思是说'nbtstat /a %computername%^|find /i "MAC Address"'产生的结果,我只要后面的MAC:00-11-D6-D0-54-7F,而不要前面的内容:“ MAC Address = ”
第5楼 sglxy 发表于 2008-04-27 13:50
中级用户 发帖 87 积分 397
plp626朋友的“tokens=2”执行成功了,我不明白的是:“ MAC Address = 00-11-D6-D0-54-7F” 这个结果经过“delims==” 处理以后,“00-11-D6-D0-54-7F”字段难道不是应该为“tokens=3”吗?
第6楼 26933062 发表于 2008-04-27 13:57
银牌会员 发帖 879 积分 2,268
MAC Address = 00-11-D6-D0-54-7F
何来的 3 ?
第7楼 zh159 发表于 2008-04-27 13:58
金牌会员 发帖 1,467 积分 3,687
“delims==” 将“ MAC Address = 00-11-D6-D0-54-7F”分为“ MAC Address ”与“ 00-11-D6-D0-54-7F”,空格不参与分段
第8楼 sglxy 发表于 2008-04-27 14:17
中级用户 发帖 87 积分 397
原来空格不参与分段,明白了。谢谢各位朋友!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023