【2017年整理】cmd中的特殊符号

上传人:爱****1 文档编号:987702 上传时间:2017-05-24 格式:DOC 页数:8 大小:38KB
返回 下载 相关 举报
【2017年整理】cmd中的特殊符号_第1页
第1页 / 共8页
【2017年整理】cmd中的特殊符号_第2页
第2页 / 共8页
【2017年整理】cmd中的特殊符号_第3页
第3页 / 共8页
【2017年整理】cmd中的特殊符号_第4页
第4页 / 共8页
【2017年整理】cmd中的特殊符号_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《【2017年整理】cmd中的特殊符号》由会员分享,可在线阅读,更多相关《【2017年整理】cmd中的特殊符号(8页珍藏版)》请在金锄头文库上搜索。

1、cmd 中的特殊符号2007 年 05 月 31 日 星期四 00:46隐藏命令的回显。在 for 中表示使用增强的变量扩展;在 set 中表示使用扩展环境变量指定位置的字符串;在 set/a 中表示按位取反。%使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;单个%紧跟 0-9 的一个数字表示引用命令行参数;用于 for 中表示引用循环变量;连续的两个%表示执行时脱为一个%。取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如 | 等时,就可以在其前面加一个符号来显示这个后面的字符了,就是显示一个,|就是显示一个|字符了;在

2、 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 等命令中见到它的身影

3、;-范围表示符,比如日期的查找,for 命令里的 tokens 操作中就可以用到这个字符;在 findstr/r 中连接两个字符表示匹配范围;-跟在某些命令的/后表示取反向的开关。+主要是在 copy 命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了;在 set/a 中是加法。|管道符。就是将上一个命令的输出,作为下一个命令的输入.dir /a/b | more就可以逐屏的显示 dir 命令所输出的信息;在 set/a 中是按位或;在帮助文档中表示其前后两个开关、选项或参数是二选一的。:标签定位符,可以接受 goto 命令所指向的标签。比如在批处理文件里面定义了一个:be

4、gin标签,用goto begin命令就可以转到:begin变迁后面来执行批处理命令了。 界定符,在表示带有空格的路径时常要用来将路径括起来,在一些命令里面也需要 符号;在 for/f 中将表示它们包含的内容当作字符串分析;在 for/f usebackq表示它们包含的内容当作文件路径并分析其文件的内容;在其它情况下表示其中的内容是一个完整的字符串,其中的、 lxmxn.txt将dir命令的结果输出到lxmxn.txt这个文本文件中去;在 findstr/r 中表示匹配单词的右边界,需要配合转义字符使用。命令重定向符。将其前面的命令的输出结果重新定向到其后面的设备中去,后面设备中的内容没有被覆

5、盖。NUL 1NUL 做简单解释这句代码的大意是指将 %mhnet% 指定的目录删除,/s 代表删除其中的子目录,/q 表示删除目录树时不提示确认, 1nul 表示将正确删除目录树的信息禁止输出,2nul 表示将删除过程中的错误信息禁止输出其中的 1 与 2 都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS 称之为设备),下表(引自 WinXP 帮助文档“使用命令重定向操作符 (Redirection Operators”一节))将列出可用的句柄。句柄 句柄的数字代号 说明 STDIN 0 键盘输入 STDOUT 1 输出到命令提示符窗口 STDERR 2 错误输出到命令

6、提示符窗口 UNDEFINED 3-9 这些句柄由应用程序和各个具体工具单独定义0 键盘输入 1 输出到命令提示符窗口 2 错误输出到命令提示符窗口 3-9 这些句柄由应用程序和各个具体工具单独定义。 2 nul 表示程序出错的信息也不显示。call attrib -r -h c:autoexec.bat nul这句其实是:call attrib -r -h c:autoexec.bat 1 nul这些 1,2,0 等等都是句柄,说白了就是代号,你只要知道 1 是代表输出信息,2 是代表出错信息,0 是代表键盘输入就行了。如果有什么不明白的可以多看看帮助与支持。命令行对重定向符号出现的位置不做

7、过多限定,只要重定向符号后紧随“字符设备”即可,故以下语句等效:echo Hello World hello.txtecho Hello Hello.txt Worldecho Hello.txt Hello World hello.txt echo Hello World在 NT 系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句,受到了命令分隔符&,&,|和语句块的制约限制。echo Message1 msg1.txt & echo Message2 msg2.txtif %target%= (echo message to screen ) else (echo message

8、 to file %target%)综上所述,nul 意为将此句命令所产生的标准输出请求重新定向到空设备中,而因为此设备的缄默特性,即相当于将此语句的输出信息屏蔽(并非隐藏);而 2nul 则是将程序执行错误时的标准错误信息输出请求重定向后屏蔽。它们联合使用,即为将此语句所可能产生的所有输出信息屏蔽。“重定向”是 MSDOS 起就存在的命令行特性,负责将指定命令或语句所产生的输入输出请求由缺省的“控制台”转交给其它的“设备”来完成,它的启动标志是“重定向符号”(包括“,、重定向,而 stderr 在 DOS 下不可直接重定向,只有通过 ctty 或其它命令将系统控制权转交给其它设备的方式,来间

9、接完成。“设备”是指可控制 PC 硬件或端口的设备驱动程序或端口代码,它通常由系统底层或硬件驱动程序实现和支持。比如 IO.SYS 实现的控制台 CON、系统时钟 CLOCK$、未知设备 CONFIG$、第一串口 AUX、第一并口 PRN、所有串口COM1COM4、所有并口 LPT1LPT3、可用盘符 A:-X:以及上文提到的空设备NUL。还有许多其它设备,比如 HIMEM.SYS 实现的 XMSXXXX0,EMM386.EXE 实现的 EMMXXXX0,IFSHLP.SYS 实现的 IFS$HLP$等。在这些设备中,可以处理输入输出信息的很少,只有 CON、NUL 以及连接有输入输出硬件(打

10、印机、MODEM 等)的串口或并口设备。它们被称为“字符设备”,而磁盘文件也作为一种特殊的字符设备列选其中,这就大大扩充了重定向的自由度与实用性,以致很多人也将重定向称为“文件重定向”。空设备 NUL 是一个特殊的设备,因为它没有可控制的 PC 硬件或端口,而只是一个虚构的的设备或端口,它仅存在于软件层面。正因为如此,它可以接受所有重定向的输入输出请求而不给出任何回应(在 NT 下不会给出任何输入信息而结束输入请求,在 DOS 下则反复填充 127 个字节 0 后终止响应),这种特性使它很像天文学上的能吞噬一切物质和信息的“黑洞”,也很类似哲学上能颠转阴阳无中生有的“玄玄之道”。它之所以存在,

11、是因为我们需要一个可以默默无闻地无条件吸纳各种冗余输出信息或输入请求的“回收站”,正如“黑洞”就像一个巨大的“宇宙垃圾场”一样CMD 没有神经错乱,是 set 处理的整数太大了,set 使用双字节存储整数,有32 位的存贮范围限制,也就是说它的处理范围是 2-31231-1,你的磁盘空间超过了这个范围溢出了。对此我没有太好的解决办法,只有舍弃后三位后除以 1049 的近似算法。for /f tokens=3 %a in (dir /-c c:|find 可用字节) do set freesize=%aset /a freesize=%freesize:0,-3%/1049nulecho Fre

12、esize:%freesize% 创建一个文件 追加到一个文件后面 前缀字符.表示执行时本行在 cmd 里面不显示, 可以使用 echo off 关闭显示 对特殊符号( aaa echo 1231231 bbb () 包含命令 (echo aa & echo bb) , 和空格一样的缺省分隔符号. ; 注释,表示后面为注释 : 标号作用 管道操作 ; 符号当命令相同的时候可以将不同的目标用;隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行首先, 不是一个命令, 而是 DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是 DOS 命令行或批处理中可能会

13、见到的一些特殊标记符:CR(0D) 命令行结束符Escape(1B) ANSI 转义字符引导符Space(20) 常用的参数界定符Tab(09) ; = 不常用的参数界定符+ COPY 命令文件连接符* ? 文件通配符 字符串界定符| 命令管道符 文件重定向符 命令行回显屏蔽符/ 参数开关引导符: 批处理标签引导符% 批处理变量引导符其次, : 确实可以起到 rem 的注释作用, 而且更简洁有效; 但有两点需要注意:第一, 除了 : 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在

14、 :后紧跟一个非字母数字的一个特殊符号.第二, 与 rem 不同的是, :后的字符行在执行时不会回显, 无论是否用 echo on 打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 : 更为适用; 另外, rem 可以用于 config.sys 文件中.也可以使用以下的用法:if exist commanddevice 是指 DOS 系统中已加载的设备, 在 win98 下通常有:AUX, PRN, CON, NULCOM1, COM2, COM3, COM4LPT1, LPT2, LPT3, LPT4XMSXXXX0, EMMXXXX0

15、A: B: C: .,CLOCK$, CONFIG$, DblBuff$, IFS$HLP$具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:1. 该设备确实存在(由软件虚拟的设备除外)2. 该设备驱动程序已加载(aux, prn 等标准设备由系统缺省定义)3. 该设备已准备好(主要是指 a: b: ., com1., lpt1.等)可通过命令 mem/d | find device /i 来检阅你的系统中所加载的设备另外, 在 DOS 系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号