批处理教程tebiebanWord文件下载.docx

上传人:b****6 文档编号:19777684 上传时间:2023-01-10 格式:DOCX 页数:27 大小:34.79KB
下载 相关 举报
批处理教程tebiebanWord文件下载.docx_第1页
第1页 / 共27页
批处理教程tebiebanWord文件下载.docx_第2页
第2页 / 共27页
批处理教程tebiebanWord文件下载.docx_第3页
第3页 / 共27页
批处理教程tebiebanWord文件下载.docx_第4页
第4页 / 共27页
批处理教程tebiebanWord文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

批处理教程tebiebanWord文件下载.docx

《批处理教程tebiebanWord文件下载.docx》由会员分享,可在线阅读,更多相关《批处理教程tebiebanWord文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

批处理教程tebiebanWord文件下载.docx

5.cd/d路径更改目录,可以更改驱动器

cls

功能:

清除屏幕上的所有显示,光标置于屏幕左上角

color

设置默认的控制台前景和背景颜色

color颜色属性

颜色属性由两个十六进制数字指定:

第一个为背景,第二个则为前景。

每个数字可以为以下任何值之一:

0=黑色8=灰色

1=蓝色9=淡蓝色

2=绿色A=淡绿色

3=湖蓝色B=淡浅绿色

4=红色C=淡红色

5=紫色D=淡紫色

6=黄色E=淡黄色

7=白色F=亮白色

copy

拷贝一个或多个文件到指定盘上

COPY[源盘][路径]<

源文件名>

[目标盘][路径][目标文件名]

(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;

  

(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;

  (3)复制文件时,必须先确定目标般有足够的空间,否则会出现;

insufficient的错误信息,提示磁盘空间不够;

  (4)文件名中允许使用通配举“*”“?

”,可同时复制多个文件;

  (5)COPY命令中源文件名必须指出,不可以省略。

  (6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;

  (7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;

  (8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:

源文件名1>

+<

源文件名2>

+…+<

源文件名n>

[目标盘][路径]<

目标文件名>

  (9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:

COPYCON[盘符:

][路径]<

文件名>

  (10)注意:

COPY命令的使用格式,源文件名与目标文件名之间必须有空格!

date

显示或设置日期

date【显示系统日期并提示输入新的日期,不修改则可直接按回车键】

date/t【只输出当前日期,不提示输入新日期】

date2011-09-10【设置新日期】

del

del[/p][/f][/s][/q]路径\文件

删除文件,文件可以使用通配符

[/p]删除每一个文件之前提示确定

[/f]强制删除只读文件

[/s]删除所有子目录中指定文件

[/q]安静模式,删除全局通配符(*.*)时,不要求确认

dir

dir[drive:

][path][filename][/A[[:

]attributes]][/B][/C][/D][/L][/N]

[/O[[:

]sortorder]][/P][/Q][/R][/S][/T[[:

]timefield]][/W][/X][/4]

显示目录中的文件和子目录列表。

/A显示具有指定属性的文件。

属性D目录R只读文件

H隐藏文件A准备存档的文件

S系统文件I无内容索引文件

L解析点-表示“否”的前缀

/B使用空格式(没有标题信息或摘要)。

/C在文件大小中显示千位数分隔符。

这是默认值。

用/-C来

禁用分隔符显示。

/D跟宽式相同,但文件是按栏分类列出的。

/L用小写。

/N新的长列表格式,其中文件名在最右边。

/O用分类顺序列出文件。

排列顺序N按名称(字母顺序)S按大小(从小到大)

E按扩展名(字母顺序)D按日期/时间(从先到后)

G组目录优先-反转顺序的前缀

/P在每个信息屏幕后暂停。

/Q显示文件所有者。

/R显示文件的备用数据流。

/S显示指定目录和所有子目录中的文件。

/T控制显示或用来分类的时间字符域。

时间段C创建时间

A上次访问时间

W上次写入的时间

/W用宽列表格式。

/X显示为非8.3文件名产生的短名称。

格式是/N的格式,

短名称插在长名称前面。

如果没有短名称,在其位置则

显示空白。

/4用四位数字显示年

errorlevel

程序返回码,echo%errorlevel%每个命令运行结束,可以用这个命令格式查看返回码用于判断刚才的命令是否执行成功,默认为0,一般命令执行出错会设errorlevel为1

exit

退出CMD.EXE程序(命令解释器)或当前批处理脚本。

find

在文件中搜索字符串。

1.find"

string"

路径\文件【不可省略引号;

文件要带扩展名】

结果:

显示包含指定字符串的行

2.find/v"

路径\文件

显示所有未包含指定字符串的行

3.find/c"

显示包含指定字符串的行的数量

4.find/n"

显示包含指定字符串在整个文本中所在的行号【就是第几行】

5.find/i"

搜索字符串时忽略大小写【默认是区分大小写的】

备注:

【"

】指定要搜索的文字串;

【路径\文件】指定要搜索的文件,如果没有指定路径,find将搜索键入的或者由另一命令产生的文字

示例:

Find常和type命令结合使用

Type[drive:

][path]filename|find"

#挑选包含string的行

][path]filename|find/v"

#剔除文件中包含string的行

][path]filename|find/c#显示文件行数

以上用法将去除find命令自带的提示语(文件名提示)

@echooff

echo111>

test.txt

echo222>

>

find"

111"

test.txt

deltest.txt

pause

运行显示如下:

----------TEST.TXT

111

请按任意键继续...

typetest.txt|find"

for

1.一般用法:

for%%iin(set)docommand【直接在命令行中只需要一个%】

解释:

(1)for语句的形式变量i,可以换成26个字母中的任意一个,这些字母会区分大小写,也就是说,%%I和%%i会被认为不是同一个变量

(2)set表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔;

(3)for语句依次提取set中的每一个元素,把它的值赋予形式变量i,带到do后的command中参与命令的执行;

并且每次只提取一个元素,然后执行一次do后的命令语句,而无论这个元素是否被带到command中参与了command的运行;

当执行完一次do后的语句之后,再提取set中的下一个元素,再执行一次command,如此循环,直到set中的所有元素都已经被提取完毕,该for语句才宣告执行结束

【for%%iin(路径\*.txt)doecho%%i与for/r路径%%iin(*.txt)doecho%%i的区别,第一个仅搜索指定文件夹下的,第二个搜索指定及其子文件夹下符合的文件】

2.for/d%%iin(路径\文件夹)docommand

文件夹命中包含通配符,在指定路径下搜索匹配的文件夹,并赋值给i【不指定路径表示在当前目录下】【仅能匹配指定目录下的第一级文件夹】【不能匹配带隐藏属性的文件夹】

3.

(1)for/r路径%%iin(.)docommand

列举路径下所有文件夹以及子文件夹,结果的显示方式为【路径\文件夹\.】

(2)for/r路径%%iin(包含通配符和扩展名的文件)docommand

列举所有符合条件的文件的路径

【不能搜索隐藏属性的文件夹或文件】

(3)for/r路径%%iin(具体文件名)doifexist%%iecho%%i

可以用来搜索文件

4.for/l%%iin(初值,步长,终值)docommand

从初值开始计数,以步长递变,直至最接近终值的那个整数值为止,这之间有多少个数,do后的语句就执行多少次。

5.

(1)for/f%%iin(test.txt)docommand

把test.txt中的文本按段落划分为元素,即第一段为元素1,第二段为元素2,空行跳过,划分之后按照for语句的循环处理机制进行处理,即把元素分别赋予%%i

(2)for/f"

delims=,"

%%iin(test.txt)docommand

把test.txt中的文本按段落划分为元素,即第一段为元素1,第二段为元素2,空行跳过,划分之后按照delims设定的符号【这里是,】将每个元素划分为小节【默认的划分符号是空格】【注意中英文的符号是不同的】,处理的时候,默认处理第一小节。

【可以添加一个以上的符号,如delims=,.】

(3)for/f"

delims=,tokens=2"

上面是默认处理第一小节,【tokens=2】可以设定处理的小节,这里指处理第二小节

特:

for/f"

delims=,tokens=2,4"

处理2和4小节,如果tokens=后面指定了多个数字,如果形式变量为%%i,那么,第一个数字指代的内容用第一个形式变量%%i来接收,第二个数字指代的内容用第二个形式变量%%j来接收,第三个数字指代的内容用第三个形式变量%%k来接收……第N个数字指代的内容用第N个形式变量来接收,其中,形式变量遵循字母的排序,第N个形式变量具体是什么符号,由第一个形式变量来决定:

如果第一个形式变量是%%i,那么,第二个形式变量就是%%j;

如果第一个形式变量用的是%%x,那么,第二个形式变量就是%%y。

如:

%%iin(test.txt)doecho%%i%%j

(4)for/f"

skip=2"

处理时,跳过前两段

(5)for/f"

eol=:

"

处理时,忽略以【:

】开头的段,【这里的符号只能设定一个】

如何决定该使用for/f的哪种句式?

(兼谈usebackq的使用)

  for/f%%iin(……)do(……)语句有好几种变形语句,不同之处在于第一个括号里的内容:

有的是用单引号括起来,有的是用双引号包住,有的不用任何符号包裹,具体格式为:

  1、for/f%%iin(文件名)do(……)

  2、for/f%%iin('

命令语句'

)do(……)

  3、for/f%%iin("

字符串"

看到这里,我想很多人可能已经开始犯了迷糊了:

如果要解决一个具体问题,面对这么多的选择,如何决定该使用哪一条呢?

1、当你希望读取文本文件中的内容的话,第一个括号中不用任何符号包裹,应该使用的是第1条语句;

例如:

你想显示test.txt中的内容,那么,就使用for/f%%iin(test.txt)doecho%%i;

  2、当你读取的是命令语句执行结果中的内容的话,第一个括号中的命令语句必须使用单引号包裹,应该使用的是第2条语句;

你想显示当前目录下文件名中含有test字符串的文本文件的时候,应该使用for/f%%iin('

dir/a-d/b*test*.txt'

)doecho%%i这样的语句;

  3、当你要处理的是一个字符串的时候,第一个括号中的内容必须用双引号括起来,应该是用的是第3条语句;

当你想把这串字符中的点号换为短横线并显示出来的话,可以使用for/f"

delims=.tokens=1-3"

%%iin("

)doecho%%i-%%j-%%k这样的语句。

  很显然,第一个括号里是否需要用符号包裹起来,以及使用什么样的符号包裹,取决于要处理的对象属于什么类型:

如果是文件,则无需包裹;

如果是命令语句,则用单引号包裹;

如果是字符串,则使用双引号括起来。

  当然,事情并不是绝对如此,如果细心的你想到了批处理中难缠的特殊字符,你肯定会头大如斗。

  或许你头脑中灵光一闪,已经想到了一个十分头痛的问题:

在第1条语句中,如果文件名中含有空格或&

,该怎么办?

  照旧吗?

  拿个叫test1.txt的文件来试试。

  你很快写好了代码,新建文件-->

码字-->

保存为批处理,前后费时不到1分钟:

1.@echooff

2.for/f%%iin(test1.txt)doecho%%i

3.pause

复制代码

你兴冲冲地双击批处理,运行后,屏幕上出现了可耻的报错信息:

系统找不到文件test。

  当你把test1.txt换成test&

1.txt后,更怪异的事情发生了:

CMD窗口在你眼前一闪而过,然后,优雅地消失了。

  你可能觉得自己的代码写错了某些符号,你再仔细的检查了一次,确认没有笔误,然后,你再次双击批处理,结果问题照旧;

你开始怀疑其他程序对它可能有影响,于是关掉其他窗口,再运行了一次,问题依旧;

你不服气地连续运行了好几次,还是同样的结果。

  怪哉!

  你一拍大腿,猛然想起了一件事:

当路径中含有特殊字符的时候,应该使用引号把路径括起来。

对,就是它了!

  但是,当你把代码写出来之后,你很快就焉了:

for/f%%iin("

test1.txt"

)doecho%%i,这不就是上面提到的第3条for/f命令的格式吗?

批处理会把test1.txt这个文件名识别为字符串啊!

  还好,下面有个例子,并配有简单的说明:

 

FOR/F"

usebackqdelims="

%iIN(`set`)DO@echo%i

会枚举当前环境中的环境变量名称。

  你仔细对比了for/f语句使用usebackq和不使用usebackq时在写法上的差别,很快就找到了答案:

当使用了usebackq之后,如果第一个括号中是一条命令语句,那么,就要把单引号'

改成后引号`(键盘左上角esc键下面的那个按键,与~在同一键位上)。

 usebackq是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:

如果第一个括号里的对象是一条命令语句的话,原来的单引号'

要改为后引号`;

如果第一个括号里的对象是字符串的话,原来的双引号"

要改为单引号'

如果第一个括号里的对象是文件名的话,要用双引号"

括起来。

  验证一下,把[code17]改写成如下代码:

@echooff

usebackq"

)doecho%%i

  测试通过!

  此时,你很可能会仰天长叹:

Shit,微软这该死的机器翻译!

  至于把代码中的空格换成&

后,CMD窗口会直接退出,那是因为&

是复合语句的连接符,CMD在预处理的时候,会优先把&

前后两部分作为两条语句来解析,而不是大家想象中的一条完整的for语句,从而产生了严重的语法错误。

因为牵涉到预处理机制问题,不属于本节要讨论的内容,在此不做详细讲解。

  这个时候,我们会吃惊地发现,区区一条for语句,竟然有多达6种句型:

  4、for/f"

文件名"

  5、for/f"

%%iin(`命令语句`)do(……)

  6、for/f"

%%iin('

字符串'

其中,4、5、6由1、2、3发展而来,他们有这样的对应关系:

1-->

4、2-->

5、3-->

6。

  好在后3种情形并不常用,所以,牢牢掌握好前三种句型的适用情形就可以了,否则,要在这么多句型中确定选择哪一条语句来使用,还真有点让人头脑发懵。

  至于for/f为什么要增加usebacq参数,我只为第4条语句找到了合理的解释:

为了兼容文件名中所带的空格或&

它在第5、6条语句中为什么还有存在的必要,我也不是很明白,这有待于各位去慢慢发现。

for命令中的变量

(1)~i【删除引号】

for/f%%iin(txt3.txt)doecho%%~i【显示txt3.txt中的元素时,删除元素的引号["

],删除规则是中间的引号不处理,无头不删,有头连尾删】

(2)~fi【展到一个完全合格的路径名】

见f:

\Ms_dos\for命令中的变量\test_~fi【如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名】

(3)~di【扩展到一个驱动器号】

\Ms_dos\for命令中的变量\test_~di【如果变量%%i的内容是一个文件或者目录名,他就会把他这文件或者目录所在的盘符号打印出来】

(4)~pi【扩展到一个路径】

\Ms_dos\for命令中的变量\test_~pi【只打印路径不打印文件名字】

(5)~ni【扩展到一个文件名】

\Ms_dos\for命令中的变量\test_~ni【只打印文件名字,不带扩展名】

(6)~xi

\Ms_dos\for命令中的变量\test_~xi【只打印文件的扩展名】

(7)~si

\Ms_dos\for命令中的变量\test_~si【只打印绝对短文件名】

(8)~ai

\Ms_dos\for命令中的变量\test_~ai【打印文件的属性】

(9)~ti

\Ms_dos\for命令中的变量\test_~ti【打印文件建立的日期】

(10)~zi

\Ms_dos\for命令中的变量\test_~zi【打印文件的大小】

(11)~$path:

i

fOR/f"

delims="

%%iin(“notepad.exe”)doecho%%~$path:

上面代码显示结果为C:

\WINDOWS\system32\notepad.exe

他的意思就在PATH变量里指定的路径里搜索notepad.exe文件,如果有notepad.exe则会把他所在绝对路径打印出来,没有就打印一个错误!

可以组合修饰符来得到多重结果:

%~dpI-仅将%I扩充到一个驱动器号和路径

%~nxI-仅将%I扩充到一个文件名和扩展名

%~fsI-仅将%I扩充到一个带有短名的完整路径名

%~dp$PATH:

i-查找列在路径环境变量的目录,并将%I扩充

到找到的第一个驱动器号和路径。

%~ftzaI-将%I扩充到类似输出线路的DIR

goto

跳转的意思,在批处理中允许以“:

XXX”来构建一个标号,然后用gotoXXX跳转到标号:

XXX处,然后执行标号后的命令。

标号的名字可以随便起,但是最好是有意义的字符串,前加个冒号用来表示这个字符串是标签,goto命令就是根据这个冒号(:

)来寻找下一步跳到到那里。

if

1.if[not][/i]"

string1"

=="

string2"

command

如果两个字符串相匹配,则条件成立,执行命令【注意是==;

not表示不匹配】,否则运行下一句;

[/i]表示在比较时不区分大小写

2.if[not]exist路径\文件command

如果指定的文件存在,则执行命令,否则运行下一句【exist换为defined可以判断变量的存在与否】

3.if[not]errorlevelnumbercommand

程序在运行结束后会返回一个数字值,若返回值大于等于指定的number,则执行命令

4.if(……)else(……)

条件成立运行if,不成立运行else【注意一定要加括号】

5.EQU-等于【=】

NEQ-不等于【!

=】

LSS-小于【<

LEQ-小于或等于【<

GTR-大于【>

GEQ-大于或等于【>

md

创建新的子目录

MD[盘符:

][路径名]<

子目录名>

  

(1)“盘符”:

指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;

(2)“路径名”:

要建立的子目录的上级目录名,若缺省则建在当前目录下。

net

netshare

显示本机开启的共享资源

netstart

查看开启了那些服务

netstart服务名

开启服务,禁用的服务无法开启【服务名之间有空格的使用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1