史上最简单易懂的DOS批处理教学 |
您所在的位置:网站首页 › bat教程pdf › 史上最简单易懂的DOS批处理教学 |
1.1、批处理的作用 自上而下成批的处理每一条DOS命令。 通过命令提示符我们每一次只能执行一条dos命令,运用批处理我们就可以把许多命令放在一起处理,从第一天一直到最后一天。 1.2、如何创建批处理 批处理文件的拓展名是.bat,相当于一个脚本,它处理的不是代码,而是命令。 特性:批处理不会在意错误,如果某一行命令出错,会在屏幕上显示一个错误,然后继续进行接下来的命令。 在Win系统中的DOS命令相当于Linux的shell命令。 原理:当你编写好一个批处理文件并且打开它时,它就会自动打开一个DOS窗口,并且执行你所写入的每一条命令,在结束时关闭窗口。 1.3@echo off 基本上每个bat文件都需要加上@echo off,也就是关闭回写,屏蔽执行过程,只显示结果。 echo xxxxxxxx echo 测试批处理命令 echo xxxxxxxx 这样显示的内容会包含当前bat脚本的路径,非常不美观,可读性也很差。 所以我们需要在开头加上: @echo off 输出不含执行过程的结果。 1.4pause pause指停止,暂停,因为批处理会从第一条不间断的执行到最后一条,所以我们执行bat脚本时完全做不出任何操作,这里就可以用pause进行暂停操作,在某一条命令后加上pause,脚本外执行到pause时就会有一个暂停的过程,这个过程中会提示出点击任意键以继续。 1.5title命令 title命令用户给当前脚本加一个标题,它可以替换在窗口顶部显示的cmd.exe路径,用法: title xxxxx 例如,我在批处理脚本输入 title 我的第一个批处理脚本 这样顶部的c:\system32\cmd.exe就会被替换为我的第一个批处理脚本 1.6 >nul 2>nul >nul是屏蔽操作失败的信息,等同于1>nul,但是成功后仍然是会提示,例如md rd等命令。 2>nul是屏蔽操作成功的信息,如果保存仍然显示。 >nul 2>nul即可屏蔽所有信息。 1.7:区块与goto命令 DOS命令中区块就是:,单独一个一个英文冒号,完整形式: :区块名 如果我们编写的批处理文件比较大,就可以使用:区块将不同的命令分区。 但是如果直接使用:,它仍然是从上到下执行的,与不写没有任何区别! 这就需要配合goto命令,完整语法: goto 区块名 例如,我在批处理中写: :spanone echo 这是第一条区块 echo 第一区块的内容 :spantwo echo 这是第二个区块 :spanthree echo 这是第三个区块 这样输出的结果应该是: 这是第一条区块 第一区块的内容 这是第二个区块 这是第三个区块然而并无卵用。 如果我们在spanone加入goto spanthree 1.8start命令 用于启动某一程序或某个网页。 start program/webpage 如果留空,只写一个start则是打开命令窗口。 死循环: 在某一区块中只写start,并且在最后加上goto区块名,无限循环打开命令窗口,直到蓝屏。 1.9实例:开机启动脚本 例如上面1.8的脚本,在重启后就会失效,所以我们就可以做个开机启动脚本,将其包装成一个流氓脚本。 开机启动的脚本应该存放在开始菜单,所有程序中的启动文件夹中,可以点击右键,打开,复制文件夹路径,然后在脚本开头写一个copy,把这个脚本复制到启动文件夹中。 在某些系统中需要有用户名路径,可以使用userprofile变量获取当前用户路径,用%%取userprofile的值,完整形式为:%userprofile% 最后的值应该是: %userprofile%\开始菜单\程序\启动 有些系统的开始菜单是[开始]菜单之类的,因为包含特殊符号,就需要用双引号包含,当然变量可以包含在双引号中。 1.10set命令 用于声明变量,等同于任何编程语言的变量,用于存档一个值。 set 变量名=变量值 取用变量的值,上面说过,用%% %变量名% 例如设置自动关机时间: set time=20 shutdown -s -f -t %time% #将在20秒后管理 /p关键字: 等待用户输入,不需要预先声明。 set /p 变量名= 变量只会被声明,不会被赋值,当批处理执行到这条命令时,会暂停一下,等待用户输入一个指后给变量赋值。 例:用户自定义关机时间 set /p time= shutdown -s -f -t %time% #当用户输入一个数字时给变量复制,在变量值得时间后关机。 如果需要给用户一个提示,就是在窗口上显示一行文件,只需要在a=后面写上要提示的内容。 set /p a=请输入关机时间(单位:秒) 如果没有/p,则a的值就是请输入关机时间... /p就是表示a不会被=号后面的内容赋值,而是由用户自行赋值(输入的内容)。 1.11if....else命令 没错,批处理中也有判断命令,与PHP,Java,JavaScript等语言不同的是,DOS命令的判断语句的形式不是if(){}else{}这样的形式,而是以行为单位分割开,因为前面也说了,批处理其实就是将DOS命令逐个处理,所以每行就是一条语句,只要换行就会被运行一次。 完整语法: if "条件"="值" 执行内容 if "条件"="值" 执行内容 else 执行内容 因为DOS命令不存在换行,所以关键字,条件,内容是以空格隔开的。 注意:在条件或者值中写变量仍然需要加%%,它与大多数编程语言都不同! 如果else上面有多个if,就相当于PHP的 if(){ ... } elseif(){ ... } else{ } 只有所有的if都不成立才会执行else的命令。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |