Windows下Bat批处理
前段时间为了省去每次都需要用vs打开工程去编译每个工程的时间,写了批处理脚本,批量编译所有工程,以下附上工作过程中用到的比较有用的内容链接:
什么是批处理?(来自百度百科)
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行
批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND. COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&;、&&;、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行、几十甚至几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。
示例代码:
以下这段代码是一个输出“hello world”的批处理代码:
@echo off
echo hello world
pause & exit
以下这段代码可以把用户输入的字符赋值到"input"变量里,并输出:
@echo off
set /p "input=>"
echo 您输入的是%input%
pause
以下为比较有用的内容,转自不同的地方:
- 批处理命令
https://blog.csdn.net/Miss_kun/article/details/51595208?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158620672519725247631207%2522%252C%2522scm%2522%253A%252220140713.130056874..%2522%257D&request_id=158620672519725247631207&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-all_SOOPENSEARCH-9 - 批处理命令——echo 和 @
https://www.cnblogs.com/Braveliu/p/5061745.html - DOS 批处理命令For循环命令详解
https://www.jb51.net/article/93171.htm - 批处理for与变量延迟详解(重点)
https://wenku.baidu.com/view/c48fe942336c1eb91a375df9.html - DOS批处理笔记
https://www.yht7.com/news/31597 - 通过批处理脚本命令行编译VS工程 命令行编译通用模板
https://blog.csdn.net/SoaringLee_fighting/article/details/78046263?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3 - 利用批处理结合Msbuild实现快速编译
https://www.cnblogs.com/fang-beny/archive/2013/04/20/3032114.html - bat find 命令
https://blog.csdn.net/mezheng/article/details/7948710 - bat中的color的参数
https://zhidao.baidu.com/question/535219291.html
下面为本人写的bat文件(出于隐私, BUILD_SLN_PATH均为虚拟的,根据自己的工程路径修改即可;BUILD_log为编译的log日志,编译时的信息)
@echo offrem 如果你的工作目录不在N盘 或者 Vs2015 不在C盘只需修改下面三行
set VIPS_PATH="F:\Lx"
cd /d %VIPS_PATH%
set VS2015PATH="D:\"Program Files (x86)"\"Microsoft Visual Studio 14.0"\Common7\IDE\"
if not exist "%VS2015PATH%\DEVENV.EXE" goto EnvError
@SET DEVENV="%VS2015PATH%\DEVENV.EXE"setlocal enabledelayedexpansionrem ======================for begin=====================
set /a bProcess=1
for /l %%i in (1,1,3) do (rem =================1 Lx1=====================
if %%i EQU 1 (
set BUILD_TYPE= "Debug|x64"
set BUILD_log= ".\buildlog\Build_Lx1.log"set BUILD_PROJECT=Lx1
set BUILD_SLN=Lx1.sln
set BUILD_SLN_PATH=.\Lx1\!BUILD_SLN!
)rem =================2 Lx2=====================
if %%i EQU 2 (
set BUILD_TYPE= "Debug|x64"
set BUILD_log= ".\buildlog\Build_Lx2.log"set BUILD_PROJECT=Lx2
set BUILD_SLN=Lx2.sln
set BUILD_SLN_PATH=.\Lx2\!BUILD_SLN!
)rem =================3 Lx3=====================
if %%i EQU 3 (
set BUILD_TYPE= "Debug|x64"
set BUILD_log= ".\buildlog\Build_Lx3.log"set BUILD_PROJECT=Lx3
set BUILD_SLN=Lx3.sln
set BUILD_SLN_PATH=.\Lx3\!BUILD_SLN!
)rem =================编译=====================
if !bProcess! EQU 1 (
echo [%date% %time%]: 开始编译,delete pre log file:!BUILD_log!
if exist !BUILD_log! del !BUILD_log!echo [%date% %time%]: 开始编译,[!BUILD_TYPE!]{!BUILD_PROJECT!}
echo [%date% %time%]: 开始编译,[!BUILD_TYPE!] !BUILD_SLN!%DEVENV% !BUILD_SLN_PATH! /Rebuild !BUILD_TYPE! /out !BUILD_log!echo [%date% %time%]: 编译完成{!BUILD_PROJECT!}rem 校验编译结果
echo [%date% %time%]: 开始校验编译结果 ...
FOR /F "tokens=6 delims= " %%i IN ('FIND /N "=====" !BUILD_log! ') DO SET e1=%%i
IF !e1! NEQ 0 ECHO 工程"!BUILD_SLN_PATH!"有!e1!个错误!echo [%date% %time%]: 校验编译结果完毕 ...
IF !e1! NEQ 0 COLOR 84 & GOTO End
rem 校验完毕rem 打印编译输出信息
rem notepad build.log
type !BUILD_log!
)set /a bProcess=1
)
rem ======================for end=====================
goto End:EnvError
@echo 环境变量设置有误:End
pause
Windows下Bat批处理相关推荐
- Windows下bat批处理脚本常用场景整理,持续更新中。。。
Windows下bat批处理脚本常用场景整理,持续更新中... 一.Winodws下使用bat脚本对结果进行筛选 例如:在筛选出来的结果中,筛选是否有"$G"字段 adb shel ...
- windows下bat批处理实现守护进程
本文转自网络,由于找不到原作者,因而无法知道出处.如果有幸让原作者看到,请联系我加上.先转载至此. 最近几天加班加疯掉了,天天晚上没法睡.开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服 ...
- windows下bat批处理实现守护多个进程
同时守护多条进程 @echo off set task_one = task_one .exe set task_two = task_two.exe set svr_one = 绝对路径\task ...
- windows下bat处理执行Mysql的sql语句
这篇文章主要介绍了windows下bat批处理执行Mysql的sql语句,需要的朋友可以参考下 有时候我们需要用bat来定时执行mysql那么就可以参考下面的代码 直接上代码: @ECHO OFF S ...
- windows下使用批处理命令安装 tomcat 服务
windows下使用批处理命令安装 tomcat 服务 1.准备 jdk的解压包 tomcat解压包 2.编写批处理命令(bat) 把jdk的解压包放到tomcat下的bin目录里(我这里直接使用的是 ...
- Windows系统bat批处理脚本实现暂停时间延迟方法
描述:Windows系统bat批处理脚本实现暂停时间延迟方法 代码: @ping 127.0.0.1 -n 1 >nul
- windows下BAT脚本ftp上传文件
windows下BAT脚本ftp上传文件 若有需要请替换ftpip.ftpuser.ftppasswd 为自己ftp服务器地.用户名以及密码. @echo off rem 获取系统时间的星期值 rem ...
- windows 下.bat 文件双击无法运行
最近发现windows 中bat 文件双击的时候无法直接运行,而是弹出"打开方式"的对话框,让选择: 而通过路径选择c:\Windows\System32\cmd.exe 的时候, ...
- Windows下用批处理抓取smart日志
Windows下硬盘数量较少时可以用HDDScan这个工具来抓取硬盘smart日志,但硬盘数来如果较多时,鼠标点来点去的就太费劲了.用smartmontools这个工具可以很简单的抓取硬盘smart日 ...
最新文章
- 基于微软企业库的AOP组件(含源码)
- 开发Linux系统下的磁盘加密方法详解
- matlab数组操作
- js最小化浏览器_Handtrack.js 开源:3行JS代码搞定手部动作跟踪
- cacti linux cpu datasource,Cacti监控Cisco CPU 以及内存
- CodeForces 176A Trading Business 贪心
- 2074. 反转偶数长度组的节点
- 信息学奥赛一本通(1072:鸡尾酒疗法)
- 网络爬虫之httpclient的使用
- strip(),replace()和re.sub()用法
- 广度搜索 -- 9.1 Word Ladder -- 求是否有解 -- 图解
- 高中计算机编程语句,高中信息技术程序设计知识点.doc
- ERP企业管理系统与CRM客户关系管理系统集成套路
- 沁园春·长沙 中法对照
- 计算机综述论文能发期刊吗,计算机核心期刊哪些好发
- 【技术贴】图文教程 最新QQ空间免费背景音乐添加方法||QQ空间免费添加背景音乐。...
- java的duplicate用法_Java FloatBuffer duplicate()用法及代码示例
- 网络三剑客之sed编辑器
- 教你微信对接图灵机器人
- 教你如何给小米5续命