批处理(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 testmkdir "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/binif "%1"=="32" set exePath=E:/tmp/api_x86/bin
if "%1"=="64" set exePath=E:/tmp/api_x64/bin
:: echo %1set 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

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

  1. windows下批处理文件bat怎么写?

    如何写bat文件,和sh文件有什么区别 项目需要,要求把Linux系统下包含有ROS功能的QT程序移植到Windows系统下,最初要做的是在Windows系统下安装ROS系统.如何在Windows系统 ...

  2. int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件...

    int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request ...

  3. windows下用bat命令自动设置ip地址和dns

    windows下的.bat文件或者.cmd文件都可以直接双击执行,里面写的批处理命令可以帮助我们方便的处理一些事情. 比如我经常到实验室去上课,实验室的有线网络需要设置本地ip地址,而在宿舍是需要DH ...

  4. Windows下使用bat批处理文件实现进程守护

    今天有个东西,想做个进程守护,保持持续连接,本来想用ProcessLasso,但是人家是收费的,并且是做进程管理的. 无奈,只能找找其他解决方案. 发现bat也可以实现进程守护,找了找,找到了一个: ...

  5. windows下批处理文件的编写

    学习地址 在学习批处理命令的过程中搜索到网上的一个<批处理命令一日一教学>系列,讲得非常浅显易懂,特此mark http://www.bathome.net/thread-2576-1-1 ...

  6. mysql怎样在bat脚本中添加日志_如何在windows下用bat脚本定时备份mysql

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 并不是所有MySQL都运行在Linux下,windows下也需要 ...

  7. windows下用bat文件启动带参数的bat文件的方法

    背景: 在windows下想启动zookeeper和kafka,无奈每次都要打开两个cmd,先切换到zk和kafka的目录,然后敲一大长串的命令执行,挺费事的,所以想写个脚本去完成一键启动. 使用以下 ...

  8. Windows 下用BAT写一个简单的apk安装器

    使用Android Studio 打包了apk文件,有时觉得给手机安装apk挺麻烦的,不妨试试在windows上编写BAT程序给手机安装apk.其实原理就是使用adb命令进行apk安装. @ECHO ...

  9. windows下利用.bat批处理文件来创建以当前时间命名的文件夹

    分享一下利用批处理文件创建以当前时间命名文件夹的命令 单位测试环境发新包的时候总会需要把旧包备份一下,每次手动创建文件夹太麻烦了,干脆写个批处理文件来创建 命令如下: @echo off set NO ...

最新文章

  1. 实例教程五:采用SharedPreferences保存用户偏好设置参数
  2. 响应式开发一招致胜 学习视频 分享
  3. Android面试常问到的知识点
  4. World of Darkraft(codeforces 138D)
  5. 发现数据对象 -- 数据库开发的关键
  6. 音视频技术开发周刊 | 176
  7. PHP ajax跨域问题最佳解决方案
  8. 面向对象程序设计的术语
  9. Spring - 理解BeanDefinition
  10. Python与C++引用分析
  11. 技术文档模板_腾讯文档-轻松操作指南
  12. 针对ARP协议的病毒攻击的简单分析
  13. ios12完美深色模式插件_让所有网站开启深色模式,试试这个浏览器插件
  14. 安装pyltp遇到的问题
  15. 开源在线答题系统包含:在线考试,问卷调查,在线练题。架构为jdk7、spring4、spring-mvc4
  16. Win10 51仿真器PZTracker驱动安装失败 未知设备
  17. 台式计算机品牌怎么查,教你怎么看电脑主板型号和品牌
  18. esxi导出ovf报错
  19. 手游族迎来360手机卫士神助攻 玩家免打扰尽情发育
  20. 【Ubuntu 1】ubuntu的软件包

热门文章

  1. PCL调错:(3)error C2589“(“:“::“右边的非法标记
  2. c语言N*N的二维数组,c语言高手帮个忙(请先看问题,好解答
  3. 根据keyName(如:result.data.name),无限深度遍历获取keyValue
  4. 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
  5. 哈佛结构和冯诺依曼结构区别。
  6. 字符串转换整数 (atoi)
  7. JAVA核心技术I---JAVA基础知识(查漏补缺private,static)
  8. 【并行计算-CUDA开发】从零开始学习OpenCL开发(一)架构
  9. 将时间改为显示:几天前,几小时前,或者几分钟前
  10. 《需求分析与系统设计》读书笔记1