cmd中的特殊符号
CMD基础教程

CMD基础教程BAT批处理基础教程DOS批处理⾼级教程精选合编--教程⽬录第⼀章批处理基础第⼀节常⽤批处理内部命令简介1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟第⼆节常⽤特殊符号1、@ 命令⾏回显屏蔽符2、% 批处理变量引导符3、> 重定向符4、>> 重定向符5、<、>&、<& 重定向符6、| 命令管道符7、^ 转义字符8、& 组合命令9、&& 组合命令10、|| 组合命令11、"" 字符串界定符12、, 逗号13、; 分号14、() 括号15、! 感叹号第⼆章FOR命令详解⼀、参数/d⼆、参数/R三、参数/L四、参数/F第三章FOR命令中的变量⼀、~I - 删除任何引号("),扩展%I⼆、%~fI - 将%I 扩展到⼀个完全合格的路径名三、%~dI - 仅将%I 扩展到⼀个驱动器号四、%~pI - 仅将%I 扩展到⼀个路径五、%~nI - 仅将%I 扩展到⼀个⽂件名六、%~xI - 仅将%I 扩展到⼀个⽂件扩展名七、%~sI - 扩展的路径只含有短名⼋、%~aI - 将%I 扩展到⽂件的⽂件属性九、%~tI - 将%I 扩展到⽂件的⽇期/时间⼗、%~zI - 将%I 扩展到⽂件的⼤⼩⼗⼀、%~$PATH:I第四章批处理中的变量⼀、系统变量⼆、⾃定义变量第五章set命令详解⼀、⽤set命令设置⾃定义变量⼆、⽤set命令进⾏简单计算三、⽤set命令进⾏字符串处理1、字符串替换2、字符串截取第六章if命令讲解第⼀种⽤法:IF [NOT] ERRORLEVEL number command 第⼆种⽤法:IF [NOT] string1==string2 command第三种⽤法:IF [NOT] EXIST filename command第四种⽤法:IF增强的⽤法第七章DOS编程⾼级技巧⼀、界⾯设计⼆、if…else…条件语句三、循环语句四、⼦程序五、⽤ftp命令实现⾃动下载六、⽤7-ZIP实现命令⾏压缩和解压功能七、调⽤VBScript程序⼋、将批处理转化为可执⾏⽂件九、时间延迟⼗、模拟进度条第⼀章批处理基础第⼀节常⽤批处理内部命令简介批处理定义:顾名思义,批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BA T或者CMD。
批处理常用特殊符号

比如:
dir c:\;d:\;e:\;z:\
以上命令相当于
dir c:\
dir d:\
dir e:\
dir f:\
如果其中z盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。
例:dir c:\;d:\;e:\1.txt
以上命令相当于
参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
例:最简单的复制文件自身的方法
copy %0 d:\wind.bat
3、> 重定向符
输出重定向命令
这个字符的意思是传递并且覆盖,他所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台)
hello
world
5、<、>&、<& 重定向符
这三个命令也是管道命令,但它们一般不常用,你只需要知道一下就ok了,当然如果想仔细研究的话,可以自己查一下资料。(本人已查过,网上也查不到相关资料)
<,输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。
@echo off
4、>> 重定向符
输出重定向命令
这个符号的作用和>有点类似,但他们的区别是>>是传递并在文件的末尾追加,而>是覆盖
用法同上
同样拿1.txt做例子
使用命令:
echo hello > 1.txt
echo world >>1.txt
这时候1.txt 内容如下:
dir c:\
dir d:\
dir e:\1.txt
Windows中的批处理的常用符号介绍

Windows中的批处理的常⽤符号介绍1.@ 命令⾏回显屏蔽符ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令本⾝,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求。
该符号在批处理中的作⽤是关闭当前⾏命令的回显,也就是不显⽰执⾏的是什么命令,只显⽰命令的结果!2.> 重定向符将>之前的命令执⾏的结果输出到>之后指定的设备或⽂件中去,特定的⽂件或标准输出(stdout--默认为系统控制台),若⽂件中有数据则覆盖。
>> 重定向符需要显⽰的数据追加到指定的输出⽂件之中,⽽不覆盖原来的内容。
< 输⼊重定向将输⼊信息来源重定向为指定的设备或⽂件,系统默认接收键盘输⼊。
>&将⼀个句柄的输出写⼊到另⼀个句柄的输⼊中<&刚好和>&相反,从⼀个句柄读取输⼊并将其写⼊到另⼀个句柄输出中常⽤句柄0、1、2,未定义句柄3-9其中的1与2都是代表某个数据流输⼊输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)。
句柄0:标准输⼊stdin,键盘输⼊ 句柄1:标准输出stdout,输出到命令提⽰符窗⼝(console,代码为CON) 句柄2:标准错误stderr,输出到命令提⽰符窗⼝(console,代码为CON) 其中的stdin可被<重定向,stdout可被>、>>重定向,⽽stderr在DOS下不可直接重定向,只有通过ctty或其它命令将系统控制权转交给其它设备的⽅式,来间接完成。
注意:如果⽤在 set /a 语句中,则>表⽰分组,>>表⽰逻辑移位。
Dos代码@echo off@rem echo 关闭命令显⽰,@关闭echo off本⾝的显⽰rem ==============设置标题title=================rem -使⽤该⽂件的名称作为标题title 测试bat的⽂件(test.bat--重定向)rem ===============重定向符>=====================rem 将当前⽂件的内容输出到指定的⽂件tb.txt⽽⾮控制台type d:\test\bak\tt.txt>d:\test\bak\tb.txtrem 将特定的字符串"Hello China "(注意最后的空格)写⼊到指定的⽂件echo Hello China >d:\test\bak\tc.txtrem ===============重定向符>>====================echo hello>d:\test\bak\td.txtecho world>>d:\test\bak\td.txtrem ===============重定向符<=====================rem 重新设定当前时间echo 2010-01-12>d:\test\bak\te.txtdate <d:\test\bak\te.txtdel d:\test\bak\te.txtrem ===============重定向符<=====================rem 如果e盘存在则将其下⾯的⽂件信息输出到te.txt 否则将错误信息输出到err.txtdir e:\ 1>d:\test\bak\te.txt 2>d:\test\bak\err.txt@pause3.| 命令管道符管道命令,将|之前的命令的输出作为|之后的命令的输⼊。
cmd中的特殊符号

cmd中的特殊符号2007年05月31日星期四 00:46@\\隐藏命令的回显。
~\\在for中表示使用增强的变量扩展;在set中表示使用扩展环境变量指定位置的字符串;在set/a中表示按位取反。
%\\使用两个%包含一个字符串表示引用环境变量。
比如一个%time%可以扩展到当前的系统时间;单个%紧跟0-9的一个数字表示引用命令行参数;用于for中表示引用循环变量;连续的两个%表示执行时脱为一个%。
^\\取消转义字符,即将所有转义字符的转义作用关闭。
比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;在set/a中是按位异;在findstr/r的[]中表示不匹配指定的字符集。
&\\命令连接字符。
比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;在set/a中是按位与。
*\\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dirc:\*.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中是按位或;在帮助文档中表示其前后两个开关、选项或参数是二选一的。
CMD命令提示符大全

CMD命令提示符大全一、CMD命令CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string]其中:CMD是不可缺少的!/C 执行字符串指定的命令然后终断/K 执行字符串指定的命令但保留/S 在 /C 或 /K 后修改字符串处理(见下)/Q 关闭回应/D 从注册表中停用执行 AutoRun 命令(见下)/A 使向内部管道或文件命令的输出成为 ANSI/U 使向内部管道或文件命令的输出成为 Unicode/T:fg 设置前景/背景颜色(详细信息,请见 COLOR /?)/E:ON 启用命令扩展(见下)/E:OFF 停用命令扩展(见下)/F:ON 启用文件和目录名称完成字符 (见下)/F:OFF 停用文件和目录名称完成字符(见下)/V:ON 将 ! 作为定界符启动延缓环境变量扩展。
如: /V:ON 会允许 !var! 在执行时允许 !var! 扩展变量 var。
var 语法在输入时扩展变量,这与在一个 FOR 循环内不同。
/V:OFF 停用延缓的环境扩展。
请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开的多个命令。
并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与/E:OFF 相同,并且 /R 与 /C 相同。
忽略任何其他命令行开关。
如果指定了 /C 或 /K,命令行开关后的命令行其余部分将作为命令行处理;在这种情况下,会使用下列逻辑处理引号字符("):1.如果符合下列所有条件,那么在命令行上的引号字符将被保留:- 不带 /S 命令行开关- 整整两个引号字符- 在两个引号字符之间没有特殊字符,特殊字符为下列中的一个: <>()@^|- 在两个引号字符之间有至少一个空白字符- 在两个引号字符之间有至少一个可执行文件的名称。
批处理中的特殊符号及其作用

device 是指DOS系统中已加载的设备, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
在这些设备中,可以处理输入输出信息的很少,只有CON、NUL以及连接有输入输出硬件(打印机、MODEM等)的串口或并口设备。它们被称为“字符设备”,而磁盘文件也作为一种特殊的字符设备列选其中,这就大大扩充了重定向的自由度与实用性,以致很多人也将重定向称为“文件重定向”。
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.
也可以使用以下的用法:
echo 123456 ^> aaa
echo 1231231 > bbb
() 包含命令
(echo aa & echo bb)
, 和空格一样的缺省分隔符号.
; 注释,表示后面为注释
: 标号作用
│ 管道操作
; 符号当命令相同的时候可以将不同的目标用;隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:
CR(0D) 命令行结束符
cmd逻辑运算符

cmd逻辑运算符
在命令行环境下,CMD中的逻辑运算符可以用于条件判断和控制流程。
主要的逻辑运算符包括:
1. 逻辑与(&&):表示同时满足两个条件,使用方式是expr1 && expr2;
2. 逻辑或(||):表示满足其中一个条件,使用方式是expr1 || expr2;
3. 逻辑非(!):表示取反,使用方式是!expr。
这些逻辑运算符在IF语句的条件判断中特别常用。
例如:
```
IF %var1%==value1 && %var2%==value2 (
REM 当同时满足var1等于value1和var2等于value2时执行此语句
)
IF %var3%==value3 || %var4%==value4 (
REM 当var3等于value3或者var4等于value4时执行此语句)
IF NOT %var5%==value5 (
REM 当var5不等于value5时执行此语句
)
```
逻辑运算符可以通过多个条件的组合来实现更复杂的条件判断和流程控制。
cmd命令大全/cmd命令提示符大全

刚接触电脑的时候是从DOS系统开始,DOS时代根本就没有Windows这样的视窗操作界面,只有一个黑漆漆的窗口,让你输入命令。
所以学DOS系统操作,cmd命令提示符是不可或缺的。
可以告诉大家,大多数的程序员牛人或计算机专家在DOS系统下的操作是非常了得的,所以菜鸟要想成为计算机高手,DOS命令是非学不可。
直到今天的Windows系统,还是离不开DOS命令的操作。
学习DOS系统操作,首先了解命令提示符。
先了解每个命令提示符的作用,然后才能够灵活运用。
下面将详细的为大家介绍cmd命令大全的符号和作用说明。
步骤/方法1.cmd命令大全(第一部分)winver---------检查Windows版本wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序wscript--------windows脚本宿主设置write----------写字板winmsd---------系统信息wiaacmgr-------扫描仪和照相机向导winchat--------XP自带局域网聊天2.cmd命令大全(第二部分)mem.exe--------显示内存使用情况Msconfig.exe---系统配置实用程序mplayer2-------简易widnows media playermspaint--------画图板mstsc----------远程桌面连接mplayer2-------媒体播放机magnify--------放大镜实用程序mmc------------打开控制台mobsync--------同步命令3.cmd命令大全(第三部分)dxdiag---------检查DirectX信息drwtsn32------ 系统医生devmgmt.msc--- 设备管理器dfrg.msc-------磁盘碎片整理程序diskmgmt.msc---磁盘管理实用程序dcomcnfg-------打开系统组件服务ddeshare-------打开DDE共享设置dvdplay--------DVD播放器4.cmd命令大全(第四部分)net stop messenger-----停止信使服务net start messenger----开始信使服务notepad--------打开记事本nslookup-------网络管理的工具向导ntbackup-------系统备份和还原narrator-------屏幕“讲述人”ntmsmgr.msc----移动存储管理器ntmsoprq.msc---移动存储管理员操作请求netstat -an----(TC)命令检查接口5.cmd命令大全(第五部分)syncapp--------创建一个公文包sysedit--------系统配置编辑器sigverif-------文件签名验证程序sndrec32-------录音机shrpubw--------创建共享文件夹secpol.m转载自电脑十万个为什么,请保留此标记sc-----本地安全策略syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码services.msc---本地服务设置Sndvol32-------音量控制程序sfc.exe--------系统文件检查器sfc /scannow---windows文件保护6.cmd命令大全(第六部分)tsshutdn-------60秒倒计时关机命令tourstart------xp简介(安装完成后出现的漫游xp程序)taskmgr--------任务管理器eventvwr-------事件查看器eudcedit-------造字程序explorer-------打开资源管理器packager-------对象包装程序perfmon.msc----计算机性能监测程序progman--------程序管理器regedit.exe----注册表rsop.msc-------组策略结果集regedt32-------注册表编辑器rononce -p ----15秒关机regsvr32 /u *.dll----停止dll文件运行regsvr32 /u zipfldr.dll------取消ZIP支持7.cmd命令大全(第七部分)cmd.exe--------CMD命令提示符chkdsk.exe-----Chkdsk磁盘检查certmgr.msc----证书管理实用程序calc-----------启动计算器charmap--------启动字符映射表cliconfg-------SQL SERVER 客户端网络实用程序Clipbrd--------剪贴板查看器conf-----------启动netmeeting compmgmt.msc---计算机管理cleanmgr-------垃圾整理ciadv.msc------索引服务程序osk------------打开屏幕键盘odbcad32-------ODBC数据源管理器oobe/msoobe /a----检查XP是否激活lusrmgr.msc----本机用户和组logoff---------注销命令iexpress-------木马捆绑工具,系统自带Nslookup-------IP地址侦测器fsmgmt.msc-----共享文件夹管理器utilman--------辅助工具管理器gpedit.msc-----组策略END经验总结:想要更详细的了解cmd命令大全、cmd命令提示符大全,还需要进入CMD命令提示符尝试,运行CMD命令提示符的方式:点击“开始”菜单——>选择“运行”——>输入“CMD”,点击确定或按下回车键即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cmd中的特殊符号2007年05月31日星期四 00:46@\\隐藏命令的回显。
~\\在for中表示使用增强的变量扩展;在set中表示使用扩展环境变量指定位置的字符串;在set/a中表示按位取反。
%\\使用两个%包含一个字符串表示引用环境变量。
比如一个%time%可以扩展到当前的系统时间;单个%紧跟0-9的一个数字表示引用命令行参数;用于for中表示引用循环变量;连续的两个%表示执行时脱为一个%。
^\\取消转义字符,即将所有转义字符的转义作用关闭。
比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;在set/a中是按位异;在findstr/r的[]中表示不匹配指定的字符集。
&\\命令连接字符。
比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;在set/a中是按位与。
*\\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dirc:\*.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。
其他资料:1、%是个ESCAPE字符,通常将之译为转义字符,但也有更形象的译名脱逸字符、逃逸字符等。
也就是说%不仅仅将与其相关的特定字符串转义并替换为特定字符串,而且自身也会被“脱逸”。
而且类似于C语言中的转义字符"\",双%会转义并脱逸为单%,四%则脱为双%。
2、for本身是一个特殊的命令,类似于一个特化的命令解释器,因为它的功能实现需要执行多条语句,因此它必须也具有对命令行(特指do后的命令行)分析处理的功能。
而command/cmd实现for时自然会借用自身原有的命令行分析模块,因此for具有二级转义的特性,for中do后的语句被分两级分析和解释,第一级在command/cmd读入并解释for命令行时,第二级在for 读入并解释do命令时,它通常会对同一命令行的进行多次解释。
然后,我们可以注意到,在do中使用命令行参数变量和环境变量时,不需要双%,那是因为,这些变量在经过第一级转义后,被替换成特定的不变的字符串常量,参与for循环的所有执行过程;而替代变量则要求在执行(do后的子命令行中)过程中不断的动态变化,而这个变化自然仍需要通过脱逸字符来实现,因此使用双%就是成了必然的选择。
另外,还需要注意到,在命令行中使用for时不需要双%,这源于命令解释器对命令行与批处理的处理方式不同。
在早期的DOS版本中,%在命令行中不被视为转义字符,所以不会被转义和脱逸,所以当时无法在命令行直接引用环境变量。
而使用for时,只需要一个%供for进行转义和脱逸就够了。
在以后的命令解释器版本中,加入了命令行转义的支持(主要是环境变量的支持),但命令行for使用单%的传统仍然保留了下来。
而 cmd中的变量延迟替换是属于特殊的情况,但不违背以上的转义原则,只是for中的环境变量不再是常量了。
rmdir /S /Q %mhnet% 2>NUL 1>NUL 做简单解释这句代码的大意是指将 %mhnet% 指定的目录删除,/s 代表删除其中的子目录,/q 表示删除目录树时不提示确认, 1>nul 表示将正确删除目录树的信息禁止输出,2>nul 表示将删除过程中的错误信息禁止输出其中的1与2都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS 称之为设备),下表(引自WinXP帮助文档“使用命令重定向操作符(Redirection Operators”一节))将列出可用的句柄。
句柄句柄的数字代号说明STDIN 0 键盘输入STDOUT 1 输出到命令提示符窗口STDERR 2 错误输出到命令提示符窗口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是代表键盘输入就行了。
如果有什么不明白的可以多看看帮助与支持。
命令行对重定向符号出现的位置不做过多限定,只要重定向符号后紧随“字符设备”即可,故以下语句等效: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 to file> %target%)综上所述,>nul 意为将此句命令所产生的标准输出请求重新定向到空设备中,而因为此设备的缄默特性,即相当于将此语句的输出信息屏蔽(并非隐藏);而 2>nul 则是将程序执行错误时的标准错误信息输出请求重定向后屏蔽。
它们联合使用,即为将此语句所可能产生的所有输出信息屏蔽。
“重定向”是MSDOS起就存在的命令行特性,负责将指定命令或语句所产生的输入输出请求由缺省的“控制台”转交给其它的“设备”来完成,它的启动标志是“重定向符号”(包括“>,>>,<”三个,其各自意义见[1])出现在句中。