新手对bat的认识
给初入bat新手的学前引导课程:
作者:jakorzhang
qq:1536706765欢迎交流请标明bat交流
前一段时间 偶然遇到了bat
一时兴起 开始学习相关教程 都说开头是难得 和大多数同学一样 网上的资源总是浅尝辄止或者存在一定错误引导信息的 容易让人学起来摸不着头脑 而且知识也完全没有次序和体系性可言。经过一些整理 一方面是为了自己更好的了解和学习bat批处理 另一方面也总结开来 带给大家参考和指导。及时指正我在学习过程中产生的误区。我是个闲话不多的人 直接上教程:
说起bat究竟要从什么地方开始说起呢?为了全面起见 从最基础的电脑硬件原理说起
大家知道 我们现在用的计算机大部分有几个模块构成:cpu(处理器),内存,硬盘,主板,输入设备(一般是键盘),输出设备(显示器)。其中cpu可以实现计算功能 里面都内置了计算机需要实现功能的指令系统 来方便计算机实现各种功能。而内存是为了实现目前计算机cpu的高运算能力而采用的一个临时储存设备 以实现cpu的快速高效运算,硬盘呢 很好说了 就是储存信息,说到底就是储存字节,主板由于和本知识联系不大 暂时神略了,输入设备即实现信息的输入 来供cpu进行相关操作。输出设备就是为了显示了 将操作的过程以及结果显示出来 方便人的进一步操作。其实为什么要讲这些不着边际的硬件方面的东西呢 这是为了在学习批处理的过程中 让同学们闷着头傻学 虽然想不通是否一定有必然联系 可我还是觉得有必要进行学前思想基础的奠定。这样才能不被各种各样的教程,资料带入迷途 迷失了方向。限制了你的创作能力。继续深入的学习前面的硬件知识。那么了解了这些硬件以后 我们要以一个陌生人的角度来看计算机。计算机究竟能做什么? 这时我们引入操作系统的概念——dos系统
dos是什么?disk opreta system简称dos翻译过来就是 磁盘操作系统 在这三个名词六个汉字里 精准的解释了计算机究竟在做什么当然 现在先不讨论网络应用 随后深入知识了在说那个。磁盘操作系统,操作的对象是磁盘 磁盘上都有什么呢?我们现在引用的系统 采用的是文件 目录 磁盘的形式对字符信息进行统一管理和操作 所以 要明白。dos操作系统 无论什么再强大的命令 他的最大功能也就是对计算机上的文件进行各种操作具体进行什么操作 这由dos的创造者 制造并设定其功能 例如可以创建删除文件 目录等等。说完操作的对象在说说操作:操作上有什么特点呢?dos操作系统的操作有两个特点 单用户 单命令,所谓单用户指某一时刻只能有一个用户在执行操作系统 单命令亦然。cpu具有计算和处理指令的功能因此 当我们重新审视dos的时候 其实就是对文件,目录,磁盘这三样东西的一些操作 以及后来引入的对命令的控制以及能够实现各种功能的外部命令。至此 我们来梳理一下 dos系统提供对文件,目录,磁盘等的操作 因为实际上计算机上也就只有这些东西。
dos系统的所有功能通过命令行来实现每一个命令都可以实现一定的功能,dos系统的所有命令分为两大类:内部命令和外部命令。什么是内部命令?内部命令是系统内存在的一些基本的 不复杂的命令 他在系统启动的时候就被加载到主内存中 等待时刻被调用。他能够实现一些基本的操作 如当前目录的转移cd命令 新建文件夹md命令等等。内存是有限的 我们总是不能把所有开发出来的功能都加载到内存里 因此我们把其他的开发出来的一些可执行程序 统称为外部命令 什么叫可执行程序?计算机可以执行三种类型的程序:*.exe *.com *.bat 以此为后缀的正确程序都是可以被计算机执行的 用来实现特定的某个或某些功能。每个类型的程序都有他的特点 分情况视之。
我们再讲讲dos系统运行命令的具体过程:当一个命令经过标准输入设备(你可以理解为键盘)输入并按下回车键 都发生了什么?我对这一块的知识也只是自己根据一些资料自行理解的 也有模糊的地方 有待进一步完善。以我看到的资料来讲 当我们输入完毕命令以后 首先command这个程序会对你输入的命令进行判断 这个判断包括命令是否存在?是内部命令还是外部命令,命令的语法是否正确? 当发现这个命令并不存在时 他会返回给标准输出设备一个错误信息告诉用户 这不是一个内部或外部命令请从新键入。如何发现是一个内部命令 则command程序会直接运行内存中的相应指令传送到cpu执行。当你command程序发现你输入的命令并不是任何一个内部命令的时候 它首先会查找当前路径下是否有该名字的可执行程序。如没有 他第二步会检查系统设置的默认外部命令文件夹里是否有你输入的命令 如果存在 这执行 不存在 返回错误信息。具体哪个文件夹是默认的外部命令文件夹 你可以输入一个外部命令 看看这个命令在哪个文件夹下比如ping命令 你可以找一找ping命令这个程序放在哪里。从上面的过程中 我们可以看出 command其实是一个命令解释器的角色。会对你的命令进行初步过滤和检查。以免发生cpu认不出你的错误指令。那么讲到这里 你也许对命令行有了个初步的认识。
了解了dos我们就可以正式引入bat的概念了。什么是bat?从哪里来 用来干什么?这也许是初学者往往一头雾水的地方。大部分资料往往是有什么学什么 并不对bat进行一个定性的解释。bat究竟能干什么?如何知道自己的bat学习之路到什么程度了?而不是一堆资料学到什么算什么。bat全称叫做batch 翻译一下就是非互交性的。怎么理解呢?我们知道dos操作系统是单用户单任务形式的。在操作过程中 用户需要进行命令的执行,确认,选择等操作 这可以看作是一个用户与操作系统互交性的操作。就好象双方在协商着进行。而batch非互交性就是说 单方面的执行程序。batch的应用是非常有实际意义的 他不仅能够实现用户不管不顾执行命令而且还可以进行多命令的执行!bat中 每一行可以看作一个命令行 命令解释器会依次的执行bat中的所有命令。那么为了彻底实现bat命令的非互交性 在dos的基础上引入了一下新的语法和功能。这就是我们在网络上经常见到的bat命令教程 像:echo pause goto if for set @ % > < : 等等。他们强化了dos功能 并实现了命令行的流程控制化。在此我们看到 bat学习内容 其实是建立在dos的基础上的。他只是使得dos命令可以一次执行多个而已 而单单的bat学习包括两大方面:1.一些bat常用的命令以及流程控制命令 如goto if for 等等 在bat中是重中之重。2.符号 在bat里 有很多符号 实现各种各样的功能当然这些符号是可以在dos中使用的 因为这些功能的最终解释权归dos命令解释器。但在bat中应用更能实现他们强大的功能罢了。如管道命令| 重定向命令> 等等。
我往往是这样 想到哪里就说到哪里 大家别见怪。绕了一个大圈子 我对bat的大环境简单的解释了一下,但 回归本质 bat再华丽也只是对文件,字符,目录,磁盘进行一些操作罢了在学习bat命令的过程中 我们要牢牢记住 一个命令 究竟能做什么?对谁操作?我现在还没学几个命令 暂时总结一些 目前学到的命令有对rem:对文件的操作 echo:对文件的操作 pause,goto:对bat命令行流程的操作 errorlevel:说道errorlevel我当时在想 它究竟是什么?说是命令 但当我在dos输入errorlevel时候 给我的信息是他不是外部或内部命令 后来我了解到 他是系统变量 所以 这其实不是命令 title,color,mode,这三个都是对控制台属性的操作其实无关紧要 find:对文件,字符的操作。 start:对文件的操作 他可以调用某个程序文件 assoc,ftype是对字符的操作 通过这个命令更改文件关联相关的字符设定 pushd,popd是对目录的操作。。。。在此就不一一罗列了。我们发现bat可以做三件事 1.对字符,文件,目录,磁盘进行读写修改等 2.对命令行流程的控制 控制命令行的执行这里面主要还是符号的作用大 准确说符号在bat叫做语法 3.对控制台的操作。其中 我们主要学习的是前两方面。通过相关命令的学习 我们能实现各种各样的功能。
上面的内容只是对bat大体上的学习。对bat命令中每个命令的深层详细解读会在随后的时间里 随着我的学习 奉献给大家。我的文章里当然一定有些许的错误 还望大家能够及时指出 与人方便于己方便 不经意的一些好习惯 也会在某一刻不经意的影响你!
浙公网安备 33010602011771号