1. 批处理编译解决方案(.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
  2. 批处理批量编译解决方案(.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 ..
  3. 调用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
  4. 路径信息获取

     REM 文件名获取
    FOR /F "eol=#" %%I in (001_Projects.txt 001_Projects.txt) do (
    echo %%~fI
    REM 完全路径
    echo %%~xI
    REM 后缀
    echo %%~nI
    REM 文件名不带后缀
    )
  5. 用goto实现循环

     set count=1
    :continue
    set /a count+=1
    if %count% lss 10 (
    echo %count%
    goto continue
    )
  6. to be continue...

用批处理批量编译多个解决方案(.sln)的更多相关文章

  1. vc6.0批量编译

    一直想研究一下怎么让电脑批处理编译程序,今天就从vc6开始,做个记录,学习一下. VC可以生成make文件(Project->Export Makefile),在设置好环境变量下,执行NMAKE ...

  2. 使用.bat 文件,批量编译项目文件。

    使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次   path %path%;D:\Program Files\Microsof ...

  3. 也谈ObjectARX多版本批量编译

    也谈ObjectARX多版本批量编译 by edata 2017-12-10 因某些原因,我的电脑系统依旧是windows XP,所以能安装的vs最高版本是vs2010,以下均在vs2010上实现,其 ...

  4. 随手写的自动批量编译部署NativeAndroid程序Python脚本

    背景 有一堆工程NativeAndroid程序,要一一编译部署编译测试,手头只有AndroidManifest和Makefile,需要一个个Update,Ndk-build,和发包安装测试,很是头疼, ...

  5. VS2015如何另存解决方案文件-修改解决方案sln文件的路径

    原文:VS2005如何另存解决方案文件-修改解决方案sln文件的路径 修改解决方案sln文件的路径 方法一:工具→选项→项目和解决方案,可设置项目的默认保存位置.方法二:"解决方案资源管理器 ...

  6. php源码编译常见错误解决方案大全

    php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...

  7. Ubuntu 12.04.1 OK335xS busybox-1.24.1 文件系统编译错误及解决方案

    Ubuntu OK335xS busybox- 文件系统编译错误及解决方案 一.参考文档: 编译busybox的一些错误: http://blog.csdn.net/hshl1214/article/ ...

  8. Grunt-Less批量编译为css

    Grunt批量编译less module.exports = function (grunt) { grunt.initConfig({ less: { main: { expand: true, s ...

  9. 批量编译目录下文件的Makefile

    1.多C文件生成各自可执行文件的Makefile如果一个目录下有很多C文件,且每个C文件都能生成一个独立的可执行文件,那么想全编译这些C文件并生成各作的可执行文件,在该目录下编写一个Makefile文 ...

随机推荐

  1. [C]基本数据类型:整型(int)用法详解

    1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整 ...

  2. junit

    junit测试代码也视为开发内容的一部分,强烈建议在开发过程中编写junit代码作为开发调试工具,用junit调试代码不需要启动应用服务器,实际上会加快开发速度.

  3. WP8.1中C++的winodws运行时组件位移操作的差异

    最近学习WP8.1应用开发,想把C语言的SM3国密算法移植到手机app中.由于把C语言的代码转换成C#代码工作量较大,因此只能用winodws运行时组件来实现. SM3国密算法是一种HASH算法,具体 ...

  4. Python2.4-原理之函数

    此节来自于<Python学习手册第四版>第四部分 一.函数基础 函数的作用在每个编程语言中都是大同小异的,,这个表是函数的相关语句和表达式. 1.编写函数,a.def是可执行代码,pyth ...

  5. 一道经典JS题(关于this)

    项目中碰到的问题,以前也碰到过,没有重视,现记录如下. <input type='button' value='click me' id='btn' /> <script> v ...

  6. github上最全的资源教程-前端涉及的所有知识体系

    前面分享了前端入门资源汇总,今天分享下前端所有的知识体系. 个人站长对个人综合素质要求还是比较高的,要想打造多拉斯自媒体网站,不花点心血是很难成功的,学习前端是必不可少的一个环节, 当然你不一定要成为 ...

  7. Codeforces Round #370(div 2)

    A B C :=w= D:两个人得分互不影响很关键 一种是f[i][j]表示前i轮,分差为j的方案数 明显有f[i][j]=f[i-1][j-2k]+2*f[i-1][j-2k+1]+...+(2k+ ...

  8. [poj2484]A Funny Game(对称博弈)

    题目:http://poj.org/problem?id=2484 题意:n个石子围成一个圈,两个人轮流取,每次可以取一个石子或者相邻的两个石子,问先手胜还是后手胜 分析: 典型的对称博弈 如果n&g ...

  9. [BZOJ2730][HNOI2012]矿场搭建(求割点)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2730 分析: 如果坍塌的点不是割点,那没什么影响,主要考虑坍塌的点是割点的情况. 显然 ...

  10. Ubuntu disk error

    I have heard that ext file system is easy to crash. Today i forced to shutdown Ubuntu. As a result,i ...