Windows下批处理文件(.bat)的使用

批处理(Batch),就是进行批量的处理。英文译文BATCH,批处理文件后缀BAT就取的前三个字母,通常被觉得是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件是扩展名为.bat或.cmd的文本文件,包括一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释执行。批处理程序尽管是在命令行环境中执行,但不仅仅能使用命令行软件,不论什么当前系统下可执行的程序都能够放在批处理文件里执行

批处理文件是无格式的文本文件。在命令提示符下键入批处理文件的名称,或者双击该批处理文件。系统就会调用cmd.exe依照该文件里各个命令出现的顺序来逐个执行它们批处理文件是一种简单的程序,能够通过条件语句(if)和流程控制语句(goto)来控制命令执行的流程。在批处理中也能够使用循环语句(for)来循环执行一条命令。

每一个编写好的批处理文件都相当于一个DOS的外部命令,你能够把它所在的文件夹放到你的DOS搜索路径(path)中来使得它能够在任何位置执行。

批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。不论什么在命令提示符下可使用的命令都可用在批处理程序中

批处理文件的格式:每一行可视为一个命令,每一个命令里能够含多条子命令,从第一行開始执行,直到最后一行结束,它执行的平台是DOS。

批处理文件里全然能够使用非dos命令,甚至能够使用不具有可执行特性的普通数据性文件。

批处理经常使用命令:批处理命令是不区分大写和小写的

1.        echo:显示此命令后的字符。

2.        echo. :显示一个空行(相当于输入一个回车的结果)。

3.        echo off:在此语句后全部执行的命令都不显示命令行本身。

4.        @:@与echo off类似,但它是加在其他命令行的最前面,表示执行时不显示命令行本身;

5.        call:调用还有一条批处理文件(假设直接调用别的批处理文件,执行完那条命令后将无法执行当前文件兴许命令)。

6.        start:调用外部程序。全部的DOS命令和命令行程序都能够由start命令来调用。等外部程序完毕后才继续执行剩下的指令;

7.        pause:执行此句会暂停,显示Pressany key to continue… 等待用户按随意键后继续;

8.        rem:与::类似,表示此命令后的字符为解释行。不执行,仅仅是给自己今后查找用的;

9.        %:表示參数。參数是指在执行批处理文件时在文件名称后加的字符串。变量能够从%0到%9。%0表示文件名称本身,字符串用%1到%9顺序表示。

10.    if:将推断是否符合规定的条件,从而决定执行不同的命令。

11.    for:循环命令,仅仅要条件符合,它将多次执行同一命令。

12.    choice:在批处理程序中,通过显示提示信息并暂停批处理程序,用户能够从一组选项键中进行选择;

13.    goto:跳转命令,程序指针跳转到指定的标签,从标签后的第一条命令開始继续执行批处理程序。

14.    set:显示、设置或删除变量,批处理中的变量是不区分类型的。不须要像C语言中的变量那样还要区分int、float、char等;

15.    cls:清屏。

16.    ver:显示版本号

17.    >、>>:都是输出重定向命令,就是把前面命令的输出写入到一个文件里;两者的差别是”>”会清除掉原有文件里的内容后把新的内容写入原文件。而”>>”仅仅会另起一行追加新的内容到原文件里,而不会修改当中的原有内容;

18. errorlevel:每一个命令执行结束。能够用这个命令行格式查看返回码,默认值为0,一般命令执行出错会设errorlevel为1;

以下是个简单的样例:autotest.bat

@echo off

:: auto run unit test

mkdir "E:/tmp/32"
mkdir "E:/tmp/64"
echo %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
echo.

echo start auto test ...

set exePath=E:/tmp/api_x64/bin

if "%1"=="32" set exePath=E:/tmp/api_x86/bin
if "%1"=="64" set exePath=E:/tmp/api_x64/bin
:: echo %1

set srcImagePath=E:/tmp/testImages
set dstImagePath=E:/tmp/%1
:: echo %dstImagePath%
set txtOutput=%dstImagePath%/result.txt
:: echo %txtOutput%

echo A.exe >> %txtOutput%
start /b /wait %exePath%/A.exe %srcImagePath%/cat.jpg %dstImagePath%/result_cat.jpg >> %txtOutput%
echo A.exe %errorlevel%
echo.

echo B.exe >> %txtOutput%
start /b /wait %exePath%/B.exe %srcImagePath%/dog.jpg 10 20 %dstImagePath%/result_dog.jpg >> %txtOutput%
echo B.exe %errorlevel%
echo.

echo end auto test ...

參考文献:

1.      http://baike.baidu.com/link?url=aYmX7ckGvNQkGaoApTIaa8oxivfLb8ygosyVNrM0DkE5I5mR0AhJGvLtwyZAiC6L3QYlk-YXggwYghWcyfQbxq

2.      http://wenku.baidu.com/link?url=SbWxLyV0sjiDgk0Cv5A0GzpR5x-d10xF1qfSbVi_p5OZ6xaZb2sw2tB14hcpuIh9smL2G76ViEiGO64VSMyHU-d3aseY_lSskYgApu3E3jm

时间: 2024-10-14 17:59:35

Windows下批处理文件(.bat)的使用的相关文章

FAQ系列 | 如何在windows下用bat脚本定时备份mysql

并不是所有MySQL都运行在Linux下,windows下也需要做例行备份,下面是用bat脚本做自动化备份的例子,大家可以参考下. remrem C:\Program Files\WinRAR 需要放到 path 下,才能调用rar cli工具remrem 跳转到工作目录下f:cd f:\DBBAKrem 设置变量:备份文件名SET BAK_FILE=MY_DBBAK_%date:~0,-4%.sqlrem 设置变量:日志文件名SET LOG_FILE=MY_DBBAK.logrem 记录日志e

有用的2个 Windows 下批处理文件(bat文件)

创建多个文件夹(目录): 新建一个记事本:win + R –>输入notepad 在笔记本中输入如下: 1 mkdir Would 2 mkdir you 3 mkdir marry 4 mkdir me 另存为以文件扩展名为bat,编码用默认或者是utf-8. 上面中的mkdir后面紧跟空格再加上你的文件名字,这里文件名字适合英文,中文会出现乱码,由于在刚学习网站时需要经常新建文件夹,所以该方法方便一些. 注意:这里放bat文件在自己想生成的目录之下. 最后双击该bat文件,效果如下: 压缩后

Windows下的bat中文乱码问题

起初拿到一个bat文件,我在修改时看到编码是gb2312,我就直接将其转变为了utf8...但是在执行后的黑窗口出现中文乱码问题,最后网上获取帮助是修改编码为ANSI编码,确实不出现乱码了,ANSI是什么编码呢,原来它是一个代表值.. 不同的国家和地区制定了不同的标准,由此产生了 GB2312.GBK.Big5.Shift_JIS 等各自的编码标准.这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码.在简体中文Windows操作系统中,ANSI 编码代表 GB

windows下通过bat脚本和计划任务实现设置某一服务的守护进程

通常服务器上跑的服务或者应用程序比较重要,如果无意间被关闭将造成不定程度的影响.通过为比较重要的服务设置守护进程,守护服务的进程.当服务关闭时可以自动开启,方法如下: 第一步:写守护进程的bat脚本  内容如下: 脚本内容中  set_task=RDO.exe意思为检查是否有RDO.exe进程. 要用的话就改成自己的进程名,如果进程宕了就过会自动重启(会在RDO.exe进程安装目录下生成一个start.bat) 其中 start.bat脚本内容中的start 后面的参数与set_svr后面的参数

openssl windows 下 编译 bat

make_openssl32.bat   ----------- D:cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\call vcvars32.bat c:cd c:\cd openssl-1.0.2g perl Configure VC-WIN32 no-asm --prefix=C:\openssl-1.0.2g\win32call ms\do_ms.bat call ms\do_win32 rem nt 编译为l

在Windows下使用BAT调度存储在资源库中的KTR

描述: 准备环境: 1.ktr文件(该KTR必须是存储在资源管库中的) 2.bat文件 @echo off D: cd D:\software\pdi-ce-5.4.0.1-130\data-integrationPan.bat -rep LJ -user admin -pass admin -dir / -trans A -level=basic>d:\test.log pause 注意:上述代码中红色标记代码为重点注意,如果是执行JOB的话,那么就需要修改为-job 执行结果如下:test.

windows下批处理文件重命名

需求: 现有avatar文件夹下面有4171个子文件夹,每个文件夹中有三张图片.要将每个子文件夹下的文件分别以文件夹名作为前缀. 方法: 使用Bulk Rename Utility来实现,参照这个链接,再根据软件中各个选项的含义,来实现自己的需求,软件下载地址.

Windows下利用bat批量打开程序,关闭程序

打开程序 在工作中,每次开机会流程化的打开很多软件,比如:sublime text.notepad++(总觉得用notepad看txt文件比较顺眼).spyder.微信.qq……,手动挨个点太麻烦,设置为开机启动的话又太慢(由于装了Oracle,开机已经很慢了). 后来了解到可以用bat文件来封装这些操作,格式如下: start /d "文件路径" 执行文件 使用步骤: 1.新建txt文件 2.编辑内容,示例如下: start /d "D:\softwares\QQ\Bin&

windows下bat批处理实现守护进程(有日志)

开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时. 早上来把程序改完善一些,增加了记录等功能. 实现: 检查是否有notepad,要用的话就算成自己的进程名,如果进程宕了就过会自动重启(会在当前目录下生成一个start.bat)