批处理详解

批处理详解


2024年4月22日发(作者:)

批处理详解

一:批处理是什么

批处理是什么?我们学习批处理,先弄懂这个问题,个人认为第一批处理是一个文本文件,

可以使用任何一种文本编辑器编写,正是基于这个特点有时候我们不想让别人看到我们书写

的代码而使用bat2com和bat2exe将其转换成exe文件,第二批处理是一种解释性程序,

它的功能类似于意念,说强很强说弱又很弱,说它是一种程序更重要的是它和其他编程语言

一样有自己的控制结构!而且这个程序有个特点就是解释执行即逐行逐句的翻译执行,这个

特点我们在后面还会提到!第三任何批处理都是一个DOS的外部命令,这使得我们在编写批

处理的时候可以使用参数,这里的参数不是指DOS命令的命令参数,后面的内容会做解释!

学习批处理第一个需要解决的问题就是特殊符号!

二:批处理中的特殊符号

学会批处理中的特殊符号对于我们学习编写批处理是非常有用的!这里我做了一下简单的

整理——:、::、&、&&、>、>>、|、||、nul、con、%、(),成对出现的东西是非常容易记忆

的,下面我们结合具体的操作仔细的理解!

1:“:”与“::”

“::”与rem命令是一样效果,起解释说明的作用,和C++中的/……/一样!

“:”符号的作用是标记一个标签与goto语句一起使用,其格式为: label,这点与C或C++中

的goto语句是截然相反的,在C或者C++中的格式为label:!举例说明:

@echo off

::标签的使用与goto语句

goto test

:test

echo goto语句test

当然goto语句的跳转是有条件,在后面的批处理结构中你会发现goto语句的魅力,这里只

是为了更好的理解上面的两个特殊符号!

2:“&”与“&&”

“&”与“&&”符号的作用是连接两个命令同时执行,区别在于前者不管第一条命令的执行是否

成功,都会执行第二条命令,而后者只有在第一条命令执行成功以后才执行后面的命令!

例子我们在学完第三组命令“|”与“||”在举!

3:“|”与“||”

“|”符号的作用是将|前执行的命令结果作为其后DOS命令的参数,比如dir|find "2008",dir

命令查看当前目录的文件,然后所有目录的列表作为find "2008"的参数,也就是从该文件

目录下查找所有2008年建立的文件!

“||”符号的作用与“|”是截然不同的,它也是连接两个命令同时执行,不过是第一条命令执行

错误的条件下才会执行第二条命令!

编写如下代码,保存为:

@echo off

set a=

set/p a=请输入要查找的用户名

net user %a% >nul 2>nul && echo 存在该用户 || echo 用户不存在.

这是Visual bat程序安装目录中非常经典的一个批处理,它的作用是检查用户输入的帐户

是否存在,当用户输入账户后,比如hacker,然后执行net user hacker,如果是存在该帐户

也就是说命令执行成功了,那么就显示存在该用户,如果不存在该帐户也就是net user

hacker命令没执行成功,就显示用户不存在,结合上面的内容我想您已经理解“||”“&&”“&”

三者的微妙之处了!

4:“nul”和“con”

在中,我们看到>nul 2>nul的句子,前者是当命令执行成功后不显示回显,

比如net user hacker /ad >nul这样用户添加成功后也不会有提示,后者是命令执行错误后

不显示回显,两者同时使用的结果就是不论命令执行是否成功,都不显示任何信息!对于“nul”

这个特殊符号我们可以理解为空字符的意思,除了不显示回显,还可以使用它删除文件,

copy nul >或者type nul>,这种删除方式是比较安全的,我想当初李开复如果使用

这种方法删除文件,也许就不会招来因为跳槽而导致的官司!

对于“con”,我们可以简单的理解为屏幕,在cmd下我们输入:copy *.txt con,可以连续打开

多个txt文件以方便我们查看!

5:“>”与“>>”

“>”它的作用是创建一个文件比如echo hacking >,而“>>”的作用是将内容追加到一个

文件后面,比如前面的内容为hacking,在CMD下输入echo hacker>>,那么

的内容为hackinghacker!

6:“%”与“()”

把这两个符号放一起有点牵强,“()”起分隔符的作用,在后面的批处理中你会理解这点,在

批处理我们可以理解为存在两个分隔符一是空格另一个是括号,这时候的“()”类似于c或者

c++中的语句结束符“;”,很多时候我们还使用它包括多条DOS命令,这时候又有点类似于c

或者c++中的{},起包含语句块的作用!

“%”它的作用是表示变量,而且在批处理文件和在命令行下书写格式不一样,在命令行下

使用%variables,在批处理中我们使用%%variables或者%variables%(不同命令使用不同

格式),对于原因,我想它类似于c或者c++中的“转义”,在编程语言中,为了某些特殊的

需要提出了“转义”的概念,顾名思义就是转变符号的原有意思,比如a是响铃!举个例子来

说明%的意思,在C++中我们要在屏幕上输出一个“”,则应该写做cout<<"";,如果要输出

两个“”则应该写成cout<<"";,这个过程有个很好听的名字“脱逸”,%也遵循了这样方法,在

后面我们将结合for命令详细的说明!

提到“%”号,就不得不说一下参数,所谓参数是在批处理文件(开始说的每个批处理文件

是一个外部命令)后所添加的以空格分隔的字符串,它的使用方法是%1-9,参数是针对批

处理文件做为一个外部命令来说的,虽然参数和变量不是一个概念,但是它是按变量来处理

的,所以有时候我们也就称为变量了!举例说明!

@echo off

md %1

md %1天下1

md %1天下2

md %1天下3

保存为我们在CMD下输入: 天下,执行后会在批处理目录中建立一个名字

为“天下”的文件夹而且在该文件夹下会一次建立三个子文件夹,这当我们输入“ 天

下”的时候“天下”就作为参数传递给了%1,即%1=天下!

另外%variables%的作用是引用环境变量!环境变量可以简单理解为系统已经设置好的系统

变量比如%systemroot$是c:windows,%compsec%代表的是


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713734223a2307907.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信