用批处理批量编译多个解决方案(.sln)
批处理编译解决方案(.sln)
@echo off path %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\
echo 正在生成HelloWorld项目,Build日志输出到HelloWorld.log.txt
msbuild.exe ..\MyProjects\HelloWorld\HelloWorld.sln /t:Rebuild /p:Configuration=Release /p:VisualStudioVersion=12.0 /l:FileLogger,Microsoft.Build.Engine;logfile=.\HelloWorld.log.txt echo 编译完成
pause>nul&exit /b
REM exit /b参数表示退出当前批处理,而不是退出cmd.exe
批处理批量编译解决方案(.sln)[Build_Core.bat]
@echo off IF "%1"=="" (
echo 没有指定项目列表文件
echo 按任意键退出
pause
exit
) ELSE (
echo 项目列表:%1
echo ____________
echo 正在开始编译
pause
) SET LogDir=logs_default IF NOT "%2"=="" (
IF EXIST %2 (
rd /s /q %2
)
SET LogDir=%2
) mkdir %LogDir% REM 备份path(如不备份,后面使用其他系统命令,如find,会找不到)
set originalPath=%path% path %SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\
SET MSBuild_Params=/t:Rebuild /p:Configuration=Release /p:VisualStudioVersion=12.0 /l:FileLogger,Microsoft.Build.Engine;logfile=.\%LogDir%\ FOR /F "eol=#" %%i in (%1) do (
for /F "usebackq delims=[]" %%I in (`echo %cd%\%%i`) do echo.正在生成%%~nxI
for /F "usebackq delims=[]" %%I in (`echo %cd%\%%i`) do ( msbuild.exe %%i %MSBuild_Params%%%~nxI.log.txt )
REM %%~nxI是文件名带后缀(file.sln)
) echo 所有项目完毕,编译日志见%LogDir% REM 还原path
path %originalPath% pause
REM ----------日志分析----------
REM 日志分析是根据Build日志里会有一行是“14 Error(s)”这样的字样(英文版VS,中文版需要修改关键字)
echo 开始分析日志 cls
cd %LogDir%
find /n " Error(s)" *.log.txt
cd ..
调用Build_Core.bat
Start_Build.bat@echo off set logDir=logs_Projects_All
call Build_Core.bat Projects_All.txt %logDir% pause
Projects_All.txt (也可以使用绝对路径)
..\..\Solution001.sln
..\..\Solution002.sln
..\..\Solution003.sln
..\..\Solution004.sln
..\..\Solution005.sln
..\..\Solution006\Project001.Web.csproj
路径信息获取
REM 文件名获取
FOR /F "eol=#" %%I in (001_Projects.txt 001_Projects.txt) do (
echo %%~fI
REM 完全路径
echo %%~xI
REM 后缀
echo %%~nI
REM 文件名不带后缀
)
用goto实现循环
set count=1
:continue
set /a count+=1
if %count% lss 10 (
echo %count%
goto continue
)
to be continue...
用批处理批量编译多个解决方案(.sln)的更多相关文章
- vc6.0批量编译
一直想研究一下怎么让电脑批处理编译程序,今天就从vc6开始,做个记录,学习一下. VC可以生成make文件(Project->Export Makefile),在设置好环境变量下,执行NMAKE ...
- 使用.bat 文件,批量编译项目文件。
使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次 path %path%;D:\Program Files\Microsof ...
- 也谈ObjectARX多版本批量编译
也谈ObjectARX多版本批量编译 by edata 2017-12-10 因某些原因,我的电脑系统依旧是windows XP,所以能安装的vs最高版本是vs2010,以下均在vs2010上实现,其 ...
- 随手写的自动批量编译部署NativeAndroid程序Python脚本
背景 有一堆工程NativeAndroid程序,要一一编译部署编译测试,手头只有AndroidManifest和Makefile,需要一个个Update,Ndk-build,和发包安装测试,很是头疼, ...
- VS2015如何另存解决方案文件-修改解决方案sln文件的路径
原文:VS2005如何另存解决方案文件-修改解决方案sln文件的路径 修改解决方案sln文件的路径 方法一:工具→选项→项目和解决方案,可设置项目的默认保存位置.方法二:"解决方案资源管理器 ...
- php源码编译常见错误解决方案大全
php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...
- Ubuntu 12.04.1 OK335xS busybox-1.24.1 文件系统编译错误及解决方案
Ubuntu OK335xS busybox- 文件系统编译错误及解决方案 一.参考文档: 编译busybox的一些错误: http://blog.csdn.net/hshl1214/article/ ...
- Grunt-Less批量编译为css
Grunt批量编译less module.exports = function (grunt) { grunt.initConfig({ less: { main: { expand: true, s ...
- 批量编译目录下文件的Makefile
1.多C文件生成各自可执行文件的Makefile如果一个目录下有很多C文件,且每个C文件都能生成一个独立的可执行文件,那么想全编译这些C文件并生成各作的可执行文件,在该目录下编写一个Makefile文 ...
随机推荐
- H2 Database入门
H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述: 更详细的对比见官网页面: http://www.h2database.com/html ...
- [转]linux 系统监控、诊断工具之 IO wait
1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...
- unity3d 扩展NGUI Tweener —— TweenTime
这是今天做的一个小功能 策划想要一个时间滚动效果 那就搞呗!思路和之前写的tweenFillAmount一样 传送门:http://www.cnblogs.com/shenggege/p/479892 ...
- nodejs实现Websocket的数据接收发送
在去年的时候,写过一篇关于websocket的博文:http://www.cnblogs.com/axes/p/3586132.html ,里面主要是借助了nodejs-websocket这个插件,后 ...
- 系统升级日记(2)- 升级到SharePoint Server 2013
最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013.本记录旨在记 ...
- JavaScript学习笔记-简单的倒计时跳转页面
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- windows设置开机启动项
一.windows下设置开机启动有如下方法 1 注册表启动项目RUN 2 计划任务,在"windows管理">"计划任务管理器"中新建任务,在操作栏指定要 ...
- 个人阅读作业——M1/M2总结
~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...
- linux 远程桌面连接
我们知道在windows下面我们可以用远程桌面连接来控制其它电脑, 但linux 远程桌面连接?不过在说怎样连接之前还是要先明确一个概念,为什么我标题没有用linux中的远程桌面连接呢, 这是因为Li ...
- JavaScript写一个小乌龟推箱子游戏
推箱子游戏是老游戏了, 网上有各种各样的版本, 说下推箱子游戏的简单实现,以及我找到的一些参考视频和实例: 推箱子游戏的在线DEMO : 打开 如下是效果图: 这个拖箱子游戏做了移动端的适配, 我使用 ...