批处理常用命令及使用批处理编译VS工程


前言

        批处理文件包含一系列DOS命令,通常用于自动执行重复性的任务,例如周期性的自动化测试工作,就可以使用批处理文件来执行定期的测试任务。这里不是批处理的完整教程,只是对批处理文件常用的命令做一个总结,方便以后写批处理的时候可以回来复习,给出的应用例子,是之前学习git服务器定期执行自动测试任务时编写的一个批处理文件,它自动编译VS工程。

一、什么是批处理

         批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND. COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。-- 来自百度百科

二、常用命令

以下列举一些非常常用的命令,并不是所有命令,这些命令将在后面的例子当中使用到。
1、echo命令
        打开回显 或关闭回显。
语法:echo [{on|off}] [message]
如果没有带参数,则显示当前echo命令的回显设置:打开状态或关闭状态
echo off :关闭命令提示符回显
echo on:打开命令提示符回显
通常和@一起使用,@ :关闭本行命令回显

在这里插入图片描述

2、rem命令
        注释命令,它类似于在C语言中的//,它并不会被执行,只是起一个注释的作用,只有在编辑批处理时才会被看到。
语法:Rem [注释内容]
rem 初始化源路径
set sourcepath = ..
::也有rem命令功能,只是它总是不回显注释的内容,而当回显打开时rem会回显注释。
3、pause命令
        暂停命令。

在这里插入图片描述

可以配合echo命令输出提示信息
echo 请按下任意键退出
pause >nul

4、call命令
        CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理。
语法:CALL [drive:][path]filename [batch-parameters]
5、cd命令
        切换目录。
6、errorlever
        每个命令运行结束,可以用这个命令行格式查看返回码。默认值为0,一般命令执行出错会设 errorlevel 为1。
7、set命令
        设置变量。类似 C语言的变量声明。引用变量可在变量名前后加 % ,如 %变量名%
无参数的set命令:显示目前所有可用的变量,包括系统变量和自定义的变量
系统变量可以直接引用,如:显示系统盘盘符 echo %SystemDrive%
显示所有以p开头的变量,要是一个也没有就设errorlevel=1,如:
set p
设置变量p,并赋值为 = 后面的字符串,如:
set path=.. \config\
8、if命令
        判断命令,根据判断条件执行后续命令,大致可以分为以下三个种类:
1)if “参数” == “字符串”  待执行的命令
2)if exist 文件名  待执行的命令
3)if errorlevel / if not errorlevel 数字,待执行的命令。
9、xcopy命令
        目录复制命令。复制指定的目录和目录下所有文件连同目录结构。
语法:xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a |/m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]] [{/y | /-y}] [/z]
Source:必需参数。指定要复制的文件的位置和名称。该参数必须包含驱动器或路径。
Destination:指定要复制的文件的目标。该参数可以包含驱动器号和冒号、目录名、文件名或者它们的组合。
/s:复制非空的目录和子目录。如果省略“/s”,只拷贝文件,不拷贝子目录。
/y:禁止提示确认要覆盖已存在的目标文件。
10、mkdir命令
        mkdir命令用来创建指定的名称的目录,要求创建用户在当前目录具有权限,并且指定的目录名不能是当前目录中已有的目录。
11、goto命令
        跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。标签以单个冒号开始,紧接着一个非冒号的标签字符串。使用方法见第三节的例子。

三、使用批处理编译VS工程

::更新头文件和库文件
set srcheadpath=...\include\
set srclibpath=..\lib
set desheadpath=.\include\
set deslibpath=.\lib

xcopy %srcheadpath% %desheadpath% /s /y
xcopy %srclibpath%abc.dll %deslibpath%  /y

@if "%VCDIR%"=="" @goto _set_vcdir
@goto _set_vcdir_end
:_set_vcdir
@rem set VCDIR
@set VCDIR=%VS120COMNTOOLS%..\..\VC
:_set_vcdir_den

@if "%VSINSTALLDIR%"==""(
call "%VCDIR%"\vcvarsall.bat
) else (
@echo current is vc env already
)

@set VC_BUILD_OPT=Release
msbuild helloword.sh /t:Rebuild /p:Configuration=%VC_BUILD_OPT%
@if %ERRORLEVEL% NEQ 0 exit /b %errorlevel%

总结

        学习要一步一个脚印,原来花了很多精力学习的内容,应该把它记录下来,免得后面需要重新用到,又得花费大量时间查找资料。这篇博文的是对常用批处理命令的总结,并不全面,如果后续做别的模块开发,需要另外一些命令,这篇文章还会扩展新的命令。
        这篇博文的另一个目的是,记录如何使用批处理来编译VS工程,这是一个非常有用的技术,应该记录下来,以后还会用得上。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值