最最最全的DOS命令大全.doc_第1页
最最最全的DOS命令大全.doc_第2页
最最最全的DOS命令大全.doc_第3页
最最最全的DOS命令大全.doc_第4页
最最最全的DOS命令大全.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

写在前:此文适合有一定dos命令基础的人看。文件资料主要来自互联网和个人整理。文件只适用学习交流,非法操作,责任自负。如有错误之处,大家多批评指正。邮箱:第一章:批处理基础之命令篇1注释命令:rem 加注释用,该命令后的同一行内容不被执行,但在echo on状态下能回显。符号:也起到注释作用,其功能和程序语言中的注释相同,永不回显,只是给批处理员在TXT格式下看的帮助内容 用:有需注意,任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。(有效标号:冒号后紧跟一个以数字开头的字符串,goto语句可以识别;无效标号:冒号后紧跟一个非数字的一个特殊符号,goto语句无法识别)行内注释:%注释内容%(不常用,慎用)2Echo和命令:echo 单独写表示显示echo设置状态echo +信息内容 ,此法常用来提示用户操作 echo on 显示后面命令的回显,echo off 关闭后面命令的回显,注意的是,在使用此命令时,后面的命令要换一行 不然就会当作“信息内容”处理 当然此法只是可以用来操作echo on/off后面的命令,如果要关闭echo on/off命令本身,则需要在echo on/off命令前加 操作。即: echo off 换行写命令在DOS提示符下输入echo off ,将关闭DOS提示符的显示,使屏幕只留下光标,直到键入echo off,提示符才会重新出现。echo。注意的echo后面紧跟(不能有空格)英文状态下的点号,且点号可以用“,:”等任一符号来替代。举例:echo.|time 相当于在time命令后给出一个回车,即在执行时系统会在显示当前时间后,换行,再自动返回到DOS提示状态。echo 答复语命令文件名 此法可以用于简化一些需要人机对话的命令,它是通过DOS管道命令把echo命令输入的预置答复作为人机对话命令的输入。举例:echo Y|del d:1.txt此命令相当于在出现人机对话时输入“Y”回车。故命令执行后会直接将D盘下的1.txt文件删除(不会放入回收站,慎用del)echo 文件内容文件名 此法用来新建一个批处理文件 举例:echo dird:new.bat执行此命令后会在D盘根目录下新建一个名为new.bat的批处理文件,且在该文件中的内容为“dir” echo 文件内容文件名 此法用来向自动批处理文件中追加内容 多和“echo 文件内容文件名”联合使用 举例:echo timed:new.bat (假如在此命令前有“echo dird:new.bat”)则此命令执行后会在如在D盘下名为new.bat文件的内容中追加“time” 如果没有假如的命令,则会在D盘下直接生成一个名为new.bat的文件且内容只有“time”3Pasuse :暂停单独使用将会显示“按任意键继续”信息。也可以这样:echo 提示信息 & pause nul则会显示“提示信息”。不会出现“按任意键继续”“pusenul”可以理解为空提示,因为默认的pause会显示“按任意键继续”4errorlevel:常用来判断刚才的命令是否执行成功格式:echo %errorlevel% 举例:dir 换行写echo %errorlevel% 则会显示完目录后,在后面跟一个“0”表示执行成功,如果执行出错会高errorlevel为“1”。思考在举例的命令下不写“echo”,会怎样。5title:用来设置批处理执行时窗口显示的标题格式:title 标题6color:用来设置窗口的背景和前景颜色。格式:color 背景色值前景色值对于具体的颜色值如下:0黑色1蓝色2绿色3湖蓝色4红色5紫色。淡紫色淡黄色亮白色举例:coror 4E 执行后将会在红色背景上产生淡黄色字如果只写一个数字则会默认的写的是前景色且背景色是默认的黑色注意:如果执行“color”(只有此命令,后不跟数值)或者“color” 设置相同的颜色,用“errorlevel”判断时则会返回“1”,且颜色为cmd启动时的颜色,一般为“背景黑前景白”7Mode:用来配置系统设备具体可以参数可以在CMD下输入MODE/?来查看,也可以直接在下输入参看本机配置举例:mode con cols=113 lines=15此命令设置窗口大小:15行,113列8Goto和标号:标号的名字可以随便起,但是最好是有意义的字符串啦,前加个冒号用来表示这个字符串是标号,goto命令就是根据这个冒号(:)来寻找下一步跳到到那里9Find:FIND /V /C /N /I /OFFLINE string drive:pathfilename ./V 显示所有未包含指定字符串的行。 /C仅显示包含字符串的行数。 /N显示行号。 /I 搜索字符串时忽略大小写。 /OFFLINE 不要跳过具有脱机属性集的文件 string 指定要搜索的文字串 drive:pathfilename 指定要搜索的文件。Find常和type命令结合使用Type drive:pathfilename | find string tmpfile #挑选包含string的行Type drive:pathfilename | find /v string #剔除文件中包含string的行Type drive:pathfilename | find /c #显示文件行数和“type”的这种类似连用将去除“find”自带的提示语举例:echo offecho 111 test.txtecho 222 test.txtfind 111 test.txtdel test.txtpause分析:执行后将显示带有“find”的提示语。如果把“find “111” test.txt”换成“type test.txt|find 111” 将去掉find自带的提示语 10start 命令:批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),但如果不通过start命令而直接运行外部程序则必须等外部程序完成后才能继续执行批处理剩下的命令。 举例:STATRT EXPLORER D: 执行后会在新的窗口打开D盘,而且不管D盘是否立即打开,都会直接执行后面的命令。11assoc和ftype:assoc 设置文件扩展名关联,关联到文件类型ftype 设置文件类型关联,关联到执行程序和参数 当你双击一个.txt文件时,并不是根据.txt直接判断用 notepad.exe 打开,而是先判断.txt属于 txtfile 文件类型再调用 txtfile 关联的命令行txtfile=%SystemRoot%system32NOTEPAD.EXE %1 可以在文件夹选项文件类型里修改这2种关联assoc #显示所有文件扩展名关联assoc .txt #显示.txt代表的文件类型,结果显示 .txt=txtfileassoc .exe #显示.exe代表的文件类型,结果显示 .exe=exefileftype #显示所有文件类型关联ftype exefile #显示exefile类型关联的命令行,结果显示 exefile=%1 %*12PUSHID和POPD:切换当前目录,一般很少用(dos编程中很有用)举例:echo offc: & cd & md mp3 #在 C: 建立 mp3 文件夹md d:mp4 #在 D: 建立 mp4 文件夹cd /d d:mp4 #更改当前目录为 d:mp4pushd c:mp3 #保存当前目录,并切换当前目录为 c:mp3popd #恢复当前目录为刚才保存的 d:mp413Call:可以调用一条批处理命令(和直接执行命令效果一样,主要用于变量多级嵌套) 命令嵌套:首先用一条DOS命令生成一个字符串,而这个字符串是另一条DOS命令,用call语句调用字符串将其运行,从而得到最终结果。现举一个变量嵌套的例子。举例:echo offset str1=aaa echo ok bbbecho 初始字符串:%str1%echo 生成命令字符串如下:echo %str1:4,7%echo 运行命令字符串生成最终结果为:call %str1:4,7%pause 注意 call调用和无call调用。可以调用一个本文件内的命令段,相当于子程序(命令段以标签:label开头,以命令“goto:eof”结尾)调用其它批处理程序 注:参数可以参FOR命令举例:set aa=123456set cmdstr=echo %aa%call %cmdstr%pause 分析:call调用“%cmdstr%”,显示12345614SHIFT:更改批处理中可替换参数的位置。格式:SHIFT/n 如果命令的扩展名被启用,SHIFT命令支持/n命令行开关,此命令行用来告诉命令从第n个参数开始转移,n介于零和八之间 举例:SHIFT/2 意为,从第二个参数开始移位,第0个和第一个参数无影响。即第三个参数移位到第二个参数(%32%),第四个参数移位到第三个参数(%42%),第n+1个参数移位到第n个参数(%n+1n%)15IF:有三种基本格式,简要分析如下:IF NOT ERRORLEVEL NUMBER COMMAND 对于此种格式理解,因为此种格式是通过ERRORLEVEL来判断命令的返回值,所以这个句子必须放在某一个命令后面。 NUMBER的数字取值范围0255,此格式一般会多个一起连用来判断多种情况,并且要非常注意在写这种格式时,要把NUMBER大的排列在前,因为判断的条件是ERRORLEVEL返回值大于等于NUMBER的值时,则认为条件成立,改为执行COMMAND 举例: echo off dir IF ERRORLEVEL 1 goto 1 &rem这句一定要写在后“IF ERRORLEVEL 0 goto 0”前IF ERRORLEVEL 0 goto 0 :0 &rem此处以及后的:应为英文件状态下的,这里写成中文echo 命令执行成功 &rem 的只是方便看 goto exit :1echo 命令执行失败 goto exit:exitEcho “按任意键退出” & pausenul IF NOT STRING1=STRING2 COMMAND 说明:字符串1和字符串2必须是绝对相等,才判条件成立,并执行COMMAND 附注:此格式下的字符串也可以是相关参数的判断比较IF NOT EXIST FILENAME COMMAND 说明:EXIT FILENAME为文件或者目录存在的意思16Setlocal与变量延迟:执行结果是4而不是5?首先是简要说下批处理机制:批处理是按行读取的(for命令等的圆括号闭合的所有语句也当作一行),在批处理前要完成必要的预处理工作,这其中包括对该行命令的变量赋值。可以通过例一理解。 例一:echo off 执行结果是4而不是5 因为在批处理执行到 set a=4 set a=5 & echo %a%之前,先把这一句整句读取并做了预处 set a=5 & echo %a% 理,这里即是对变量a赋值。简单的来说,在读取一条 pause 完整语句之后,不立即对该行的变量赋值,而会在某个单 语句执行之前再进行赋值,也就是“延迟” 例二:只需在例一的“set a=4”之前加一句“setlocal enabledelayexpansion” 并把最后变量a的输出改为“!a!”则可以使执行结果变为“5”。分析:由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了 注意:如果“set a=5 & echo %a%”分成两行写则不会出现变量的延迟(仍是通过批处理机制理解)。例3: echo off setlocal enabledelayedexpansion for /l %i in (1,1,5) do ( set a=%i echo !a! ) pause结果:12345分析:本例开启了变量延迟并用“!”将变量扩起来,因此得到我们预期的结果。如果不用变量延迟会出现什么结果呢?结果是这样的:ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。ECHO 处于关闭状态。即没有感知到for语句中的动态变化。提示:在没有开启变量延迟的情况下,某条命令行中的变量改变,必须到下一条命令才能体现。这一点也可以加以利用,看例子。例:交换两个变量的值,且不用中间变量echo off:目的:交换两个变量的值,但是不使用临时变量:Code by JM 2007-1-24 CMDXP:出处:/forum/viewthread.php?tid=27078set var1=abcset var2=123echo 交换前: var1=%var1% var2=%var2%set var1=%var2%& set var2=%var1%echo 交换后: var1=%var1% var2=%var2%pause利用变量延迟:在未设置setlocal enabledelayedexpansion时,可以不通过中间变量来交换两个变量的值 举例:set var1=abcset var2=123echo 交换前: var1=%var1% var2=%var2%set var1=%var2%& set var2=%var1%echo 交换后: var1=%var1% var2=%var2%17ATTRIB:显示或更改文件属性:ATTRIB +R +S +A +H +DRIIVE: PATH FILENAME /S /D“+”在这里是设置属性,当然也可以用“-”来清除属性。“/S”处理当前的文件夹及其文件夹中匹配文件 “/D”也处理文件夹举例:md new & attrib +a +s +h new 执行后将建立名为“new”的文件夹,然后将其设为存档,系统,隐藏属性。 第一章:批处理之符号篇1命令回显屏蔽符:在某个命令前加“”,可以关闭该命令的回显。最常用的方法是在“echo off”前加“”来关闭包括“echo off”在内的所有命令的回显2%批处理参数引导符:%0%1%2%3%4%5%6%7%8%9 为命令行传递给批处的参数。其中“%0”为批处理文件本身,包括完整的路径和扩展名。“%1”第一个参数。“%9”第九个参数参数“%0”具有特殊功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等。关于复制文件自身举例:copy %0 d:win.bat另外,%注释内容%也是一种用法,但是只能用一行内注释,且不能出现重定向符号和管道符号。其实,此时的“注释内容”是被当作变量的,其值为空,故只起注释作用。注意这种用法容易出错,应少用它的注释作用,这里只是作为一个了解3“”“ ”“&”等重定向符:“”这个字符的意思是传递并且覆盖,即是将运行的结果传递到后面的范围(后面可以是文件,也可以控制台)举例:echo hello 1.txt 执行后将建立名为1.txt的文件,内容为“hello”(注意行尾有一空格,因为hello后有一空格)“” 此符号和“”基本相同,它只是追加内容,不覆盖。并且在txt中每执行一次“”所表现的追加是换行追加。“temp.txt :把要修改的日期写到临时文本中date & &”,将一个句柄的输出写入到加一个句柄输入中。而“&”是从一个句柄读取输入并将写入到另一个句柄输入中。(常用句柄:0,1,2,未定义句柄9) 句柄0:标准输入stdin,键盘输入句柄1:标准stdout,输出到命令提示符的窗口 句柄2:标准stderr,输出到命令提示符窗口其中stdin,可被,重定向 举例:echo offSet/p str=%0 rem 注意set命令的语法,+参数p,是把后面的输入摘要给“str”,在txtecho %str% rem中一般表现为把第一行内容给“str”如果没有参数p,则会把该pauserem 批处理完整的名称(包括路径)赋给“str”。4命令管道符:格式:第一条命令第二条命令此命令的作用是:将第一条命令的结果作为第二条命令的参数来使用举例:echo 2008-1-1|date5转义字符:对特殊符号,&等的前导字符,在命令中加入“”字符可以将这些符号的特殊功能去掉,仅仅把它们当作符号来使用。举例:echo test1.txt 这里便是把echo后面的内容显示出来(“”会不显示,除非在“”前再加“”)再举例个例:Echo 英雄:执行后看看结果,发现“英雄也是人写在了一行”原因是在每也是 :行的末尾都有一个看不见的回车符人 :注意此处不能加“”,后面的命令(比如暂停pause)才不会被当成屏Puase :显内容。还有要注意不能有注释内容和和其它的会加回车的内容。6组合命令:“&” “&” “|”&组合命令:格式:第一条命令&第二条命令& 用此种方法可以同时执行多条命令,但是当第排在前面的某个命令失败时,则后面的命令全部不执行。 &组合命令:按顺序执行,且排在前面的命令执行失败,后面的命令仍会执行| 组合命令:当在前面的某个命令在顺序执行的过程中只要有一个正确的,后面的就不执行。 注意的是在用组合命令和重定向命令时,必须注意优先级。注意是管道命令高于重定向,重定向命令高于组合命令 举例:dir c: a.txt & dir d: a.txt 此命令等价于: dir c: a.txt & dir d: a.txt 此处的等价可以重优先级理解。7“”字符串界定符:双引号允许在字符串包含空格。主要用法是进入一个特殊目录。可以用如下方法:cd “program files”cd progra1cd pro* 都是进入program files目录8“,”逗号相当于空格,在某些情况下可以用“,”来当做空格使用。举例:Dir,c:9“;”分号,当命令相同时,可以将不同目标用“;”来分隔, 举例:编写批处理分别执行:dir c:;d:;e:;z: 和dir c:;d:;e:1.txt 可以得出结论:如果有一目标路径不存在,则终止执行;如果路径存在,仅文件不存在,则继续执行。 10()括号:用来将多行命令组合一起,可以使其可以被看作是命令行。在for语句中和IF语句中常见,当然“()”也可以单独使用,比如 eccho 1&echo 2&echo 3等价于:(echo 1 Echo 2 Echo 3) 注意:括号把多条命令括起当作命令行,根据前面所说的批处理机制,如果有变量当然就会涉及到变量延迟的问题。11“!”感叹号主要方法:在变量延迟问题中,用来表示变量。即%var%在启动变量延迟时(setlocal enabledelayedexpansion),再引用变量时,则应该这样写:!var! 1基本格式:FOR %variable IN (set) DO COMMAND command-parameters%variable 指定一个单一字母表示可替换的参数,注意只能是“单一”的字母 Set根据不同的参数所作的相关设置。COMMAND-PARAMEETERS 为特定命令指定参数或命令行开关 2参数/D:作用是与set所设路径的目录名匹配,而不与文件名匹配。简单的说这个参数主 要用于目录搜索,但不会搜索文件。举例:echo off &for /d %i in(d:*) do echo %i &pause 执行后会将D盘下的所有目录名(这里体现为文件夹名)显示出来。如果在“()”中不指明盘符路径,则默认为当前路径。但要注意,括号要有一个“*”星号,星号的作用是搜索set指定的全部。 再举例一个例:for /d %i in(windows?)do echo %i 假如此批处理在C盘下,则会显示windows。举例此例目的:一是为了说明星号,二是为了说明Set的设置,三是为了复习“?”和星号的区别。3/r 参数格式:FOR /R drive:path %variable IN (set) DO command command-parameters注解:/r 参数后面的“drive:path”可以省略,如果省 略则默认为当前路径。关于用法,可以举几例来说明: 例一:set中为具体的文件名,不含通配符。则列举/r参数目录及其子目录下的所有,即使不符合set的要求,也列举。 for /r e:cd1 %t in (a.txt) do echo%t 执行后会列举/r 参数所指定的目录及其子目录下所有的“a.txt”文件,并列举/r参数所指定的目录(这里是e:cd1)下的子目录名。 例二:set中文件名含有通配符,则只在/r参数指定的盘符路径范围内列举符号set要求的完整文件名。 for /r e:cd1 %t in (*.txt) do echo %t执行后,会列举/r参数路径及其子路径下所有符合set设置的文件名。 总结:此两例的区别是:set的设置是否含有通配符,不含通配符,只是多了列举/r参数所指定目录下不符合set要求的子目录。 其实对不含通配符的理解还可以这样:列举/r参数所指定目录及其所有子目录的完整路径(即列完所有路径),并在所有路径下加set设置的文件名 当然对于不含通配符的情况如果不想列举所有路径,可以这样做。参照例一再举一例 例三: for /r e:cd1 %t in (a.txt) do if exist %t echo%t 发现多了一个判断。这样只列举符合set要求包括完整路径的文件名。 以上所举例三例都是在/r参数后设定了搜索路径,如果没有指定搜索路径,则会在当前路径下搜索。 4/l参数:FOR /L %variable IN (start,step,end) DO command command-parameters至于这个例,有点编程基础的都懂,就不多说。只是说明step为步进值,且可以为负。现举两个例子:例一:for/l %t in (5,-1,1) do echo %t例二:for /l %t in(1,1,5) do start cmd 以上两个例子可以自己执行看看 唯一要提的是如果循环次数过多,也将具有小破坏性比如:for/l %t in(1,1,65535) do md %t5/F参数:通过“for/? ”得到帮助足以让人看晕,此处采用举例说明 格式如下:FOR /F options %variable IN (file-set) DO command command-parametersFOR /F options %variable IN (string) DO command command-parametersFOR /F options %variable IN (command) DO command command-parameters例一:echo offrem 首先建立临时文件test.txtecho ;注释行,这是临时文件,用完删除 test.txtecho 11段 12段 13段 14段 15段 16段 test.txtecho 21段,22段,23段,24段,25段,26段 test.txtecho 31段-32段-33段-34段-35段-36段 test.txtFOR /F eol=; tokens=1,3* delims=,- %i in (test.txt) do echo %i %j %kPause &del test.txt可以先复制以上内容,执行一次看看效果。下面具体解释各个“OPTIONS”关键字。(1)所有的关键字均包含在“”双引号内,且如果有“DELIMS”必写在最后。(2)“eol”后只能是等于一个字符,全以该字符开头的行全部忽略。此处是把以“;”开头的行全部忽略。(3)“delims”来指定分段的依据,这里以“,-和空格”作为分段的依据。因为涉及到空格,所以必须放在关键字的最后。当然分段也是给“tokens”提供选择的依据。提醒在后文件会多少用到文本字段这个概念,这里即是对文本字段的说明。(4)“tokens”是根据“delims”所指定的分段来选择段,这里体现为选第一段,第三段,以及第三段后所有的段。(5)这里的“i,j,k”分别为代表第一个字段,第二个字段,星号所表示的剩下字段。由于这里只有三个实字段,所以只需“i,j,k”三个变量。注意关键字后只写第一个变量,而“j,k”均是默认的“隐变量”(6)“skip”是用来指定跳过的行数,注意是从整个文件的首行开始跳。(7)注意set中所设的“文件,字符串,命令”这三个书写格式,另外要注意文本txt类型文件加引号不加引号(即是称为纯文本,或者叫字符串文本)是不同的,在后文中将会有所交代。如果要显示全部内容,只需要把“FOR”改为:FOR /f “eol= delims”%i in(test.txt) do echo %i 由于此时,实际只有一个字段,所以只需一个变量。 再举例如下:echo offFOR /F delims= %i in (net user) do echo %ipause 执行后,将列出本机全部帐号名字,在OPTIONS关键字里加“delims=”是为了让空格的行能整行显出来。不明白可以去掉“delims=”看效果:I 删除引号 %FI 将%I扩展到一个完全合格的路径名%DI 仅将%I扩展一个驱动器号观察以下格式作以下说明:“%”是一种语法格式,必写(删除引号格式略有不同)每个扩展变量后均有一个相同的“I”,则是说明在FOR带入的变量,如果我们在FOR语句中这样写:FOR/F %T IN(“SET”) DO ECHO %Z 则相应的“I”就应变为“T” 像以上所举的扩展变量还有很多,下面详细说明。 1I 删除引号,先举例,再详细说明用法。举例:echo offecho 1111temp.txtecho 2222temp.txtecho 3333temp.txtecho 444444temp.txtecho 555555temp.txtrem 上面建立临时文件,注意不成对的引号要加转义字符,重定向符号前不要留空格FOR /F delims= %i IN (temp.txt) DO echo %ipausedel temp.txt以下例子可以编写成bat文件执行看看效果,通过效果可以作如下总结:删除条件:首部必须有引号,否则任何地方出现的引号均不作处理。 删除规则:有首部只删首部(中间的不处理),有尾部首尾一起删(删除了一对引号,中间仍不处理)。 更简单的说,引号删除只是针对首尾的引号,对中间引号无任何影响。2%FI :将%I扩展到一个完全合格的路径名,仍是举例说明。例:FOR /F delims= %i IN (dir /b) DO echo %fiPause编写批处理执行后,看效果。再把最后的“%fi”改成“%i”对比看下。不难发现“%fi”的作用是将I扩展到一个完全的合格路径名。如果是某个文本,则会将文本中的字段扩展到一个完全的路径名,可以在上例的基础上试试。如果是字符串,则是显示当前路径,可以自己试试。3%DI :将%I扩展到一个驱动器号。举例如下:FOR /F delims= %i IN (dir /b) DO echo %dipause 编成批处理执行后,不难发现它的作用。至于显示的驱动器号,要根据“SET”来判断,如果set未设置相应的盘符,则默认的是当前盘符(批处理文件所在的盘符),另外字符串默认的盘符也是当前盘符4%pi :仅将%I扩展到一个路径。举例:FOR /F delims= %i IN (dir /b) DO echo %pipause 说明:如果“set”里设置为文件,则显示为文件所在的路径(这个路径是没有盘符的路径),如果“set”里文件的设置已经包含了详细的路径(比如,set里这样写“e:cd1abc.txt”),则显示为空如果“set”里设置为命令或字符串则显示为当前所有文件路径(同样是没有盘符的路径)。这些都可以自己动手亲自验证。 这里要注意的是,如果“set”里设置纯文本(纯文本是指未加引号的文本,加了引号则会当成文件处理),则会列举所有文本字段的路径(即是有多少个文本字段,就列举多少个无盘符路径)如果“set”里设置的是命令,则会根据命令的执行来列举无盘符路径(比如set里这样写:dir/b,则会列举所有文件的无盘符路径,因为dir就是列举文件名)5%ni :将%i扩展到一个文件名 举例:FOR /F delims= %i IN (dir /b) DO echo %ni 编成批处执行,对此作如下总结:对于这个例子来讲,“%ni”和“%i”会显示相同的结果。再换成纯文本或者字符串依次执行发现“%ni”和“%i”显示结果均相同。而纯文本表现为显示文本字段,字符串则显示为字符串内容。6%xi :仅将%I扩展到一个文件扩展名 举例:FOR /F delims= %i IN (dir /b) DO echo %xi从此点开始对扩展变量的讲解只给出例子,建议自己亲手试验,可以仿以上所给例子,分别试验:纯文本(字段上看),命令(典型的dir),字符串。7%sI:对长文件名进行短名处理。 FOR /F delims= %i IN (dir /b) DO echo %si 此处表现为列举所有文件名,并对长文件名用“”进行短名处理。8%ai : 将 %I 扩展到文件的文件属性FOR /F delims= %i IN (dir /b) DO echo %ai 执行只针对文件,且显示“a”表示默认的准备存档属性。属性说明:d:目录 R:只读。相关属性可以参“dir/?”9%tI:将 %I 扩展到文件的日期/时间 举例:FOR /F delims= %i IN (dir /b) DO echo %ti 执行后表现为显示当前目录上各个文件的创建日期/时间10%zI: 将 %I 扩展到文件的大小 举例:FOR /F delims= %i IN (dir /b) DO echo %zi上面例子中的delims=可以改为delims=,即不要分隔符11%$PATH:I : 查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串举例:FOR /F delims= %i IN (“temp.txt”) DO echo %$PATH:i执行后(假如在当前路径下有一个“temp.txt”的文件)会显示temp.txt所在的绝对路径。因此这句话意思就在PATH变量里指定的路径里搜索temp.txt文件,如果有temp.txt则会把它所在绝对路径显示出来,没有就会(自己试试)此处重点讲下:“set”设置中加引号即是前文所说的文本,如果不加引号,就是前文所说的纯文本(纯文本可以理解为文本内容,所以在前文各处才有了“set”设成纯文本要分段的说法)。而此处的文本加引号按格式来说引号里的内容就成了“字符串”。那怎么理解呢?大家不妨这样想,找一个字符串,只不过此字符串是针对文件名来说的。 也可把引号当作强调找的文件名来理解。 如果把引号去掉,可以试试执行效果。另外一个问题是关于path路径的,希望大家仔细搜索相关资料理解。1系统变量%ALLUSERSPROFILE% 本地 返回“所有用户”配置文件的位置。%APPDATA% 本地 返回默认情况下应用程序存储数据的位置。%CD% 本地 返回当前目录字符串。%CMDCMDLINE% 本地 返回用来启动当前的 Cmd.exe 的准确命令行。%CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。%COMPUTERNAME% 系统 返回计算机的名称。%COMSPEC% 系统 返回命令行解释器可执行程序的准确路径。%DATE% 系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。%ERRORLEVEL% 系统 返回上一条命令的错误代码。通常用非零值表示错误。%HOMEDRIVE% 系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。%HOMEPATH% 系统 返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。%HOMESHARE% 系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。%LOGONSERVER% 本地 返回验证当前登录会话的域控制器的名称。%NUMBER_OF_PROCESSORS% 系统 指定安装在计算机上的处理器的数目。%OS% 系统 返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。%PATH% 系统 指定可执行文件的搜索路径。%PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。%PROCESSOR_IDENTFIER% 系统 返回处理器说明。%PROCESSOR_LEVEL% 系统 返回计算机上安装的处理器的型号。%PROCESSOR_REVISION% 系统 返回处理器的版本号。%PROMPT% 本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。%RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。%SYSTEMDRIVE% 系统 返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。%SYSTEMROOT% 系统 返回 Windows server operating system 根目录的位置。%TEMP% 和 %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。%TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。%USERDOMAIN% 本地 返回包含用户帐户的域的名称。%USERNAME% 本地 返回当前登录的用户的名称。%USERPROFILE% 本地 返回当前用户的配置文件的位置。%WINDIR% 系统 返回操作系统目录的位置。以上内容作为参考,详细内容可以网上搜索。 下面举例说明:例一:进入CMD里输入“ECHO %TIME%” 此法可以简单的获得某系统变量的值,其它的系统变量也可以参此法来获得其值。 下面举例来说明加进某文件到启动项。 例二:copy 1.bat %USERPROFILE%开始菜单程序启动 编写批处理,执行后会把当前路径下的1.bat(也可以指定其它路径,比如d:1.bat)制到当前登录用户的启动项里 注意的是,要用引号,因为对变量的引用要用到引号,所以此处万不可忽略引号。 通过以上两例对系统变量的使用,可以为我们以后使用其它的系统变量作一个参照。另外还有一些其它的系统变量:他们是%0 %1 %2 %3 %4 %5%9 %* 对于%1到%9的意思是依次返回批处理的第一个参数到第九个参数 关于此,举例如下:例三:echo offecho %1 %2 %3 把这个复制编写批处理保存在D盘根目录下,命名为“te.bat”。然后进入CMD,在CMD里进入D盘,输入te.bat 我是第一个参数 我是第二个参数 我是第三个参数 然后回车执行可以看到效果。 这里只需说明在调用批处理,并在后指定参数(空格分开参数),通过%来调用参数。 而如果要调用所有的参数,只需把“echo %1 %2 %3”改为“echo %*”方可达到显示所有输入参数的效果。 下面重点来说说“%0”:用法一:返回批处理所在的绝对路径,举例:echo off echo %0 &pause保存为批处理文件,执行后会显示此批处理所在的绝对路径。 用法,无限循环执行批处理中的命令。举例:echo offNet userDir%0 执行后,将会无限循环“NET USER”和“dir”命令,直到手动停止。其实%0就是指批处理文件名,因此会无限循环批处理文件中的所有命令。2自定义变量要自定义变量,就得使用“set”命令。举例:echo offSet var=我是值Echo %var% Pause 保存为批处理文件,执行后会看到效果。这是最简单的一种设置变量的方法了。当然也可以让用户手工输入的变量值,这里要用到“set /p”举例:echo offSet /p var=请输入变量的值Pause变量的值在运行后由用户输入,注意“var”等号右边是提示语,不是变量的值,用户输入的才是变量的值。对于“set”后文件还会讲解。:1显示,设置或删除cmd.exe环境变量 基本格式:SET VARIABLE=STRING 几个最基础的用法:“SET VAR=10”,再通过“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论