中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-18 08:03
中国DOS联盟论坛 » 其它操作系统综合讨论区 » Windows 命令符号的问题 查看 24,263 回复 126
楼 主 Windows 命令符号的问题 发表于 2006-10-28 23:46 ·  美国 德克萨斯州 贝尔 基林 Charter_Communications
初级用户
积分 29
发帖 10
注册 2006-10-18 15:11
UID 66445
性别 男
状态 离线
学习DOS的过程中, 发现在看一些例子的时候, 很多人都会用到不用的符号, 而且变化很多, 有时候命令都懂, 就被卡在这里符号上, 你们能不能把这些符号集中的解释一下. 希望能全一些, 或者帮我找个地方能学习.. 谢谢了..



修改标题,以符合主题内容。原标题:DOS 符号的问题
——管理员
2 发表于 2006-10-29 00:00 ·  中国 四川 成都 电信
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
ntcmds.chm
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
fastrun -2 2007-12-09 21:56

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
3 发表于 2006-10-29 13:02 ·  美国 德克萨斯州 贝尔 基林 Charter_Communications
初级用户
积分 29
发帖 10
注册 2006-10-18 15:11
UID 66445
性别 男
状态 离线
OH,谢谢..
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
fastrun +2 2007-12-09 21:56
qinchun36 +1 2008-04-23 20:31
4 发表于 2006-10-29 13:47 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线


  Re : panhong1986

  下面是对你的主题的回复,同时也算是自己对批处理学习过程中遇到的字符的作用的总结吧.
  
  下面的总结,因本人能力和经验所限,因此难免会有写错的或者遗漏的地方,如果有问题,欢迎你以及大伙批评指正.下面的写的并不全面,以后再慢慢的补充上来.

[注]:\\后面的内容为注释;另外,感谢 qzwqzw 对此资料的补充。
__________________________________________________________________________________________

@
\\隐藏命令的回显。

~
\\在for中表示使用增强的变量扩展;
在set中表示使用扩展环境变量指定位置的字符串;
在set/a中表示按位取反。

%
\\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;
单个%紧跟0-9的一个数字表示引用命令行参数;
用于for中表示引用循环变量;
连续的两个%表示执行时脱为一个%。

^
\\取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的中表示不匹配指定的字符集。

&
\\命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;
在set/a中是按位与。

*
\\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt";
在set/a中是乘法。比如"set/a x=4*2",得到的结果是8;
在findstr/r中表示将前一个字符多次匹配。

()
\\命令包含或者是具有优先权的界定符吧,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影;

-
\\范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符;
在findstr/r中连接两个字符表示匹配范围;
-跟在某些命令的/后表示取反向的开关。

+
\\主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了;
在set/a中是加法。

|
\\管道符。就是将上一个命令的输出,作为下一个命令的输入."dir /a/b | more"就可以逐屏的显示dir命令所输出的信息;
在set/a中是按位或;
在帮助文档中表示其前后两个开关、选项或参数是二选一的。

:
\\标签定位符,可以接受goto命令所指向的标签。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"变迁后面来执行批处理命令了。

" "
\\界定符,在表示带有空格的路径时常要用""来将路径括起来,在一些命令里面也需要" "符号;
在for/f中将表示它们包含的内容当作字符串分析;
在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容;
在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。

/
\\表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数;
在set/a中表示除法。

>
\\命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。比如可以用"dir > lxmxn.txt"将"dir"命令的结果输出到"lxmxn.txt"这个文本文件中去;
在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。

>>
\\命令重定向符。将其前面的命令的输出结果重新定向到其后面的设备中去,后面设备中的内容没有被覆盖。

<
\\将其后面的文件的内容作为其前面命令的输入。
在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。

=
\\赋值符号,用于变量的赋值。比如"set a=windows"的意思意思是将"windows"这个字符串赋给变量"a";
在set/a中表示算术运算,比如"set /a x=5-6*5"。

\
\\这个"\"符号在有的情况下,代表的是当前路径的根目录.比如当前目录在c:\windows\system32下,那么你"dir \"的话,就相当与"dir c:\"
在findstr/r中表示正则转义字符。

''
在for/f中表示将它们包含的内容当作命令行执行并分析其输出;
在for/f "usebackq"中表示将它们包含的字符串当作字符串分析。

.
\\
在路径的\后紧跟或者单独出现时:
一个.表示当前目录;
两个.表示上一级目录;
在路径中的文件名中出现时:
最后的一个.表示主文件名与扩展文件名的分隔。

&&
\\连接两个命令,当&&前的命令成功时,才执行&&后的命令;

||
\\连接两个命令,当||前的命令失败时,才执行||后的命令。

$
\\在findstr命令里面表示一行的结束。

``
在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。


在帮助文档表示其中的开关、选项或参数是可选的;
在findstr/r中表示按其中指定的字符集匹配。

?
\\在findstr/r中表示在此位置匹配一个任意字符;
?在路径中表示在此位置通配任意一个字符;
紧跟在/后表示获取命令的帮助文档。

!
\\当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用;
在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。
__________________________________________________________________________________________

①:第四次补充资料于2006.10.30.
②:第四次补充资料于2006.11.08.
③:第四次补充资料于2006.01.24.
④:第四次补充资料于2007.03.13.


[ Last edited by lxmxn on 2007-4-5 at 01:37 PM ]
本帖最近评分记录 (共 10 条) 点击查看详情
评分人分数时间
redtek +10 2006-10-29 20:00
chainliq +6 2007-01-13 04:37
sleet1986 +1 2007-01-13 07:15
zhxy9804 +2 2007-01-19 21:51
beeny +1 2007-01-23 23:22
bob1989 +1 2007-01-25 00:23
electronixtar +23 2007-03-16 10:41
dthao +4 2007-11-04 07:06
lzl0532 +1 2008-01-11 17:15
mwm5 +1 2009-10-17 20:42
5 发表于 2006-10-29 14:25 ·  美国 德克萨斯州 贝尔 基林 Charter_Communications
初级用户
积分 29
发帖 10
注册 2006-10-18 15:11
UID 66445
性别 男
状态 离线
WOW.... THANK U SO MUCH,DUDE
6 发表于 2006-10-29 14:30 ·  美国 德克萨斯州 贝尔 基林 Charter_Communications
初级用户
积分 29
发帖 10
注册 2006-10-18 15:11
UID 66445
性别 男
状态 离线
难得有这么详细的解释, 等你写完全部的我把它们复制下来.
7 发表于 2006-10-29 20:01 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
lxmxn写得真详细!加10分~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
8 发表于 2006-11-23 06:40
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
UID 69523
性别 男
状态 离线
努力就有回报.呵呵
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
9 发表于 2006-11-26 09:13 ·  中国 安徽 马鞍山 电信
初级用户
积分 43
发帖 15
注册 2006-11-20 01:46
UID 71094
性别 女
状态 离线
写的很好!多谢lxmxn!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
+1 2006-11-28 03:04
10 发表于 2006-12-05 21:39 ·  中国 云南 玉溪 电信
初级用户
积分 28
发帖 12
注册 2006-10-17 22:24
UID 66155
状态 离线
麻烦楼上的高手抽空补充,我们在耐心等待.
11 发表于 2006-12-06 02:04 ·  中国 安徽 滁州 电信
新手上路
积分 4
发帖 2
注册 2006-06-07 16:22
UID 56697
状态 离线
在这里真是学到东东了。高手 真是多呀!
12 发表于 2006-12-08 14:10 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by ynjzlzd at 2006-12-5 21:39:
麻烦楼上的高手抽空补充,我们在耐心等待.


  今天已经补充了几个符号上去了,好像再没有其它的符号吧。=_=
13 发表于 2006-12-16 05:05 ·  中国 北京 电信
新手上路
积分 12
发帖 6
注册 2006-12-09 12:13
UID 73044
性别 男
状态 离线
多谢了!!
14 发表于 2006-12-17 04:31 ·  中国 广东 中山 电信
初级用户
积分 28
发帖 14
注册 2006-11-24 21:08
UID 71601
性别 男
状态 离线
看不清楚呢?》
15 发表于 2006-12-17 16:08 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by nt101007 at 2006-12-17 04:31:
看不清楚呢?》


  是什么看不清楚?我怕字体小了看不清楚,特意把字体调成比较的大的字体了,怎么还看不清呀?
论坛跳转: