史上最简单易懂的DOS批处理教学

您所在的位置:网站首页 bat教程pdf 史上最简单易懂的DOS批处理教学

史上最简单易懂的DOS批处理教学

#史上最简单易懂的DOS批处理教学| 来源: 网络整理| 查看: 265

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