中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-24 23:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [整理参考] CMD/DOS下符号的作用参考 置顶I 查看 153,427 回复 216
31 发表于 2007-06-27 01:51 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
RE qzwqzw:

已经修正过来了,不过这个"号对于其它的特殊符号(比如 ^ 、& 、| )起到了取消特殊用途的作用。所以感觉在用 set /a 命令时加上一对""比较保险。呵呵。
32 发表于 2007-06-27 18:16 ·  中国 云南 昆明 教育网
新手上路
积分 18
发帖 7
注册 2007-06-12 22:13
19年会员
UID 91120
性别 男
状态 离线
好东西,谢谢楼主,已经下载为DOC文档打印学习了。
33 感谢,学习ing 发表于 2007-08-04 08:24 ·  中国 黑龙江 鸡西 联通
初级用户
积分 25
发帖 14
注册 2006-11-02 01:05
19年会员
UID 69226
性别 男
状态 离线
:lol:
此贴强,对的起党
34 发表于 2007-08-04 08:55 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
这确实一篇很有价值的文章,对于帮助理解cmd颇有帮助。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
35 发表于 2007-09-03 10:51 ·  中国 云南 西双版纳傣族自治州 电信
初级用户
★★
积分 100
发帖 52
注册 2006-03-02 15:06
20年会员
UID 51231
来自 云南
状态 离线
ok
36 发表于 2007-09-07 10:29 ·  中国 北京 鹏博士BGP
初级用户
积分 66
发帖 29
注册 2007-09-06 15:09
18年会员
UID 96715
性别 男
状态 离线
问一下这个:
! !
① 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用。
我启动了变量延迟后用!!引用变量,不可以阿。
是不是还需要什么条件?

我比较笨,见笑了。
37 发表于 2007-09-09 01:45 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Re flamemperor:

你是用 Setlocal EnableDelayedExpansion 启动的吗?

请将你的代码发出来看看?
38 发表于 2007-09-14 13:56 ·  中国 北京 联通
初级用户
积分 66
发帖 29
注册 2007-09-06 15:09
18年会员
UID 96715
性别 男
状态 离线
谢谢斑竹的恢复,我已经解决问题了。

是我自己写错了,谢谢你。现在对变量延迟还是一知半解,继续学习中。
39 发表于 2007-09-28 18:41 ·  中国 浙江 宁波 电信
初级用户
积分 87
发帖 42
注册 2007-09-27 19:25
18年会员
UID 98424
性别 男
状态 离线
还说什么呢!先顶吧
40 发表于 2007-09-30 09:12 ·  中国 重庆 中移铁通
初级用户
积分 70
发帖 33
注册 2007-06-03 21:10
19年会员
UID 90174
性别 男
状态 离线
学习了
41 发表于 2007-10-03 14:14 ·  中国 广东 东莞 电信
初级用户
积分 63
发帖 18
注册 2006-09-09 08:41
19年会员
UID 62219
状态 离线
在cn-dos 从来看帖不回贴 看到这个好帖 我觉得我的坏习惯的改一改了
42 发表于 2007-10-04 16:51 ·  中国 福建 泉州 电信
新手上路
积分 4
发帖 2
注册 2007-10-04 14:04
18年会员
UID 98876
性别 男
状态 离线
非感感谢lxmxn版主
受益匪浅!!!
43 发表于 2007-10-07 08:10 ·  中国 湖北 黄冈 电信
初级用户
★★
积分 153
发帖 54
注册 2007-06-20 18:24
19年会员
UID 91903
性别 男
状态 离线
正好看不懂,帮了我大忙
44 发表于 2007-10-07 12:41 ·  中国 湖北 武汉 电信
初级用户
积分 97
发帖 33
注册 2007-03-05 06:13
19年会员
UID 80815
性别 男
状态 离线
for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|find /i "Physical Address"') do echo %%a>c:\MAC.txt
问题来了,'ipconfig /all^|find /i "Physical Address"'
既然是让 'ipconfig /all传输给下一个命令 为什么又用^这个符号来取消|的作用呢?
如果只运行'ipconfig /all^|find /i "Physical Address
可以不需要这个符号
为什么在for 里面一定要加上^
45 发表于 2007-10-07 18:01 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
RE qdloverr:

for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|find /i "Physical Address"') do echo %%a>c:\MAC.txt

如果不在 ipconfig /all 和 find 之间的|前加^的话,这条语句就可以理解成:
for /f "tokens=2 delims=:" %%a in ('ipconfig /all传值给find /i "Physical Address"') do echo %%a>c:\MAC.txt
很明显会导致语法错误。导致这样情况,可能是因为管道符(|)的优先级比for命令中in后面的括号()的优先级高。

如果不加^的话,想办法使 ipconfig /all|find /i "Physical Address" 变成一个整体,或许可以这样:
for /f "tokens=2 delims=:" %%a in (' "ipconfig /all|find /i "Physical Address" "') do echo %%a>c:\MAC.txt


[ Last edited by lxmxn on 2007-10-7 at 06:03 PM ]
论坛跳转: