用批处理编译VC2008工程

http://blog.csdn.net/smilelance/archive/2009/09/18/4566501.aspx

     该批处理的初衷是为了让公司非程序员可以不通过VC工程,直接运行批处理文件而编译运行程序。

一,其实很简单,首先需要安装VC,没有正式版,安装免费的Express版本也行。

然后写个批处理,内容如下。

REM VC目录中2008是9.0,2005是8,其他的自己到C:\Program Files去找下VC安装路径

CALL "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

REM “\xxx.vcproj” 是工程名字,包含路径,或者可能是.sln

REM “defaultbuild_d|Win32”是工程的配置名字,用文本方式打开.sln或者.vcproj就肯看到

VCbuild "\xxx.vcproj" "defaultbuild_d|Win32"

REM "..\bin\win32\defaultbuild_d"是exe文件所在目录
CD "..\bin\win32\defaultbuild_d"

REM CALL "xxx.exe"是你的exe文件
CALL "xxx.exe"

以上内容做成一个批处理放在桌面上,就能直接编译运行工程了。

二,从msdn里找的VCBUILD帮助

VCBUILD 具有下列选项:

选项
 说明
 
/clean (VCBUILD) 
 指定输出只清理生成输出。
 
/error 
 使用 string 参数指定输出到 stdin, stdout, stderr 的前缀错误行。
 
/implib 
 指定为 DLL 配置创建一个导入库。
 
/info 
 使用 string 参数指定输出到 stdin, stdout, stderr 的前缀信息行。
 
/link 
 指定执行链接而不生成源。 
 
/log 
 指定使用 file 作为生成日志。
 
/logcommands 
 指定将命令和响应文件输出到屏幕。
 
/M 
 指定要运行的并发生成的数量。
 
/nocolor 
 显示未着色的错误和警告消息。
 
/noimplib 
 指定不生成导入库。
 
/overrideRefVer 
 指定在升级 Visual Studio 早期版本中的 CLR 项目时,将为所有程序集引用使用 .NET Framework 3.5。
 
/pass0 
 指定执行 Build.exe 的步骤 0 (MIDL)。
 
/pass1 
 指定执行 Build.exe(暗指 /implib )的步骤 1(编译)。 
 
/pass2 
 指定执行 Build.exe(暗指 /noimplib )的步骤 2(链接)。
 
/platform 
 只针对给定平台生成配置。
 
/rebuild (VCBUILD) 
 指定清理生成输出,然后执行生成。
 
/time 
 记录完成生成耗费的时间。
 
/upgrade 
 将项目文件升级到最新支持的格式。
 
/useenv 
 对 PATH、INCLUDE、LIBS 和 LIBPATH 使用环境变量。
 
/warning 
 使用用户定义的字符串对警告行添加前缀。
 

三,网上找的一个哥们整理的多工程在一个项目里的批处理编译,不过自己也没试验过,哈哈

来源网址:

http://blog.csdn.net/lzmtw/archive/2008/12/15/3514889.aspx

内容

Author: 水如烟 

IDE可以把多个工程项目组织起来,并根据工程间的引用关系自动按先后顺序编译各个工程项目。有的时候,或者编程分工,或者工程项目内容比较多,或者有些工程项目独立性较强,我们就把这些工程项目独立到一个或多个解决方案里面。这样,当这些工程项目修改之后,引用它的项目都需要重新编译。按照通常的做法,我们需要按引用关系逐个打开解决方案进行编译。如果方案多,或者那些项目修改频繁,这个“点击编译”的工序,令人烦心。下面,介绍一种利用BAT文件批量编译的方法。


VS.NET的IDE既是一个WINDOW界面程序,也接受DOS命令行方式。IDE的应用程序名称为devenv,接受DOS命令行方式的程序为devenv.com,最终由devenv.exe解释执行。正常安装情况下,程序置于“X:\Program Files\Microsoft Visual Studio *\Common7\IDE”目录。其中X表示系统所在驱动符,*表示VS.NET版本号,对于VS2008为“9.0”,VS2005为 “8.0”,VS2003为“.NET 2003”。

VS.NET在安装的时候,赋予系统多个环境变量。了解系统的环境变量,你可以打开“附件”里的“DOS命令提示符”(它是Windows命令解释程序),打入命令“SET”然后回车,就可以看到所有的环境变量的名称、值。

注:有人不明白Dim cmd As String = System.Environment.GetEnvironmentVariable("ComSpec")是什么意思,它就是获取系统命令解释程序即 cmd.exe的全文件名称,一般是“X:\WINDOWS\System32\cmd.exe”。在上面的命令结果中可以看到“ComSpec”值。

在列出的结果中,首先留意PATH值。可以发现,VS.NET安装时并没有把devenv所在的目录列入搜索路径里面。与VS.NET有关的环境变量,有“VS*COMNTOOLS”,*表示版本,对于VS2008为“90”,VS2005为“80”。(VS2003的我这没安装,不清楚。)以下以 VS2008为例。

“VS90COMNTOOLS”的值通常为“X:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\”。由此变量,可以间接取得devenv所在目录即“% VS90COMNTOOLS% ..\IDE\”。

到此,可以编写BAT文件了。我的BAT文件为Build.bat,放在“桌面”上,内容如下:
SET VSCMD=%VS90COMNTOOLS% ..\IDE\devenv
"%VSCMD%"  "D:\正式代码\SolutionForSystem\SolutionForSystem.sln" /Rebuild
"%VSCMD%"  "D:\正式代码\SolutionForFoxPro\SolutionForFoxPro.sln" /Rebuild
"%VSCMD%"  "D:\正式代码\SolutionForWindowsForms\SolutionForWindowsForms.sln" /Rebuild
"%VSCMD%"  "D:\正式代码\SolutionForSystemData\SolutionForSystemData.sln" /Rebuild
"%VSCMD%"  "D:\正式代码\SolutionForDBaseDatabase\SolutionForDBaseDatabase.sln" /Rebuild
"%VSCMD%"  "D:\正式代码\SolutionForDatabaseUI\SolutionForDatabaseUI.sln" /Rebuild


由于目录名称和项目名称有规律,最后修改如下:
@SET VSCMD=%VS90COMNTOOLS% ..\IDE\devenv
@FOR %%i IN ("System", "FoxPro","WindowsForms","SystemData","DBaseDatabase","DatabaseUI") DO "%VSCMD%" "D:\正式代码\SolutionFor%%~i\SolutionFor%%~i.sln" /Rebuild

注:MSBuild.exe也可以实现命令行编译,它是直接引用Microsoft.Build.BuildEngine.Engine来实现编译功能。MSBuild.exe存于“X:\WINDOWS\Microsoft.NET\Framework\v*”目录下,其中*为Framework 主版本号。

注:在DOS界面下,cd 到命令所在目录,命令 /?可以看到运行命令所需的参数及用法。可以通过管道重定义结果输出。比如看devenv.com的用法:
devenv /? > c:\HelpForDevenv.txt
执行后打开HelpForDevenv.txt文件,内容如下:


Microsoft (R) Visual Studio 9.0.30729.1 版。
版权所有(C) Microsoft Corp。保留所有权利。

用法: 
devenv  [solutionfile | projectfile | anyfile.ext]  [switches]

devenv 的第一个参数通常是一个解决方案文件或项目文件。
如果您希望在编辑器中自动打开文件,
也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE
会在项目文件的父目录中查找与该项目文件具有相同
基名称的 .sln 文件。如果不存在这样的 .sln 文件,
IDE 将查找引用该项目的单个 .sln 文件。如果不存在这样的单个
.sln 文件,则 IDE 将创建一个具有默认 .sln 文件名的未保存
的解决方案,其基名称与项目文件的基名称相同。

命令行生成:
devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ]
可用的命令行开关:

/Build  使用指定的解决方案配置生成解决方案或
  项目。例如“Debug”。如果可能存在多个平台,
  则配置名称必须用引号括起来
  并且包含平台名称。例如“Debug|Win32”。
/Clean  删除生成结果。
/Command 启动 IDE 并执行该命令。
/Deploy  生成并部署指定的生成配置。
/Edit  在此应用程序的运行实例中打开
  指定文件。如果没有正在运行的实例,
  则启动一个具有简化窗口布局的新实例。 
/LCID  设置 IDE 中用于用户界面的默认语言。
/Log  将 IDE 活动记录到指定的文件以用于故障排除。
/NoVSIP  禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。
/Out  将生成日志追加到指定的文件中。
/Project 指定生成、清理或部署的项目。
  必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。
/ProjectConfig 重写解决方案
  配置中指定的项目配置。例如“Debug”。如果可能存在
  多个平台,则配置名称必须用引号括起来
  并包含平台名称。例如“Debug|Win32”。
  必须和 /Project 一起使用。
/Rebuild 先清理,然后使用指定配置生成
  解决方案或项目。
/ResetAddin 移除与特定外接程序关联的命令和命令用户界面。
/ResetSettings 恢复 IDE 的默认设置,还可以重置为
  指定的 VSSettings 文件。
/ResetSkipPkgs 清除所有添加到 VSPackages 的 SkipLoading 标记。
/Run  编译并运行指定的解决方案。
/RunExit 编译并运行指定的解决方案然后关闭 IDE。
/SafeMode 以安全模式启动 IDE,加载最少数量的窗口。
/Upgrade 升级项目或解决方案以及其中的所有项目。
  并相应地创建这些文件的备份。有关备份
  过程的更多信息,请参见
  “Visual Studio 转换向导”上的帮助。

产品特定的开关:

/debugexe       打开要调试的指定可执行文件。
                命令行的其余部分作为它的参数
                传递到此执行文件。
/useenv  使用 PATH、INCLUDE、LIBPATH 和 LIB 环境变量
  而不是使用 VC++ 生成的 IDE 路径。

要从命令行附加调试器,请使用: 
 VsJITDebugger.exe -p <pid>


了解MsBuild的用法:
执行MSBuild /? > c:\HelpForMSBuild.txt
HelpForMSBuild.txt内容如下:


Microsoft (R) 生成引擎版本 3.5.30729.1
[Microsoft .NET Framework 版本 2.0.50727.3053]
版权所有(C) Microsoft Corporation 2007。保留所有权利。

语法:              MSBuild.exe [选项] [项目文件]

描述:          在项目文件中生成指定的目标。如果
                     未指定项目文件,MSBuild 将搜索
                     当前工作目录来查找文件扩展名
                     以“proj”结尾的文件并使用该文件。

开关:

  /target:<targets>  在此项目中生成这些目标。使用
                     分号或逗号分隔多个目标,或者分别指定
                     每个目标。(缩写: /t)
                     示例: 
                       /target:Resources;Compile

  /property:<n>=<v>  设置或重写这些项目级属性。<n> 是
                     属性名,<v> 为属性值。请使用
                     分号或逗号分隔多个属性,或者
                     分别指定每个属性。(缩写: /p)
                     示例: 
                       /property:WarningLevel=2;OutDir=bin\Debug\

  /maxcpucount[:n]   指定用于生成的最大
                     并发进程数。如果未使用开关,则使用的默认值
                     为 1。如果使用开关时不带值,
                     MSBuild 将最多使用计算机上的
                     处理器数。(缩写: /m[:n])
      
  /toolsversion:<version>
                     要在生成过程中使用的 MSBuild 工具集
                     (任务、目标等) 的版本。此版本将重写
                     个别项目指定的版本。(缩写: 
                     /tv)
                     示例: 
                       /toolsversion:3.5
   
  /verbosity:<level> 在事件日志中显示此级别的信息量。
                     可用的详细级别有: q[uiet]、 m[inimal]、
                     n[ormal]、d[etailed] 和 diag[nostic]。(缩写: /v)
                     示例: 
                       /verbosity:quiet

  /consoleloggerparameters:<parameters>
                     控制台记录器的参数。(缩写: /clp)
                     可用的参数有:
                        PerformanceSummary -- 显示在任务、目标和项目上
                            花费的时间。
                        Summary -- 结束时显示错误和警告的摘要。
                        NoSummary -- 结束时不显示错误和警告
                            的摘要。
                        ErrorsOnly -- 仅显示错误。
                        WarningsOnly -- 仅显示警告。
                        NoItemAndPropertyList -- 在开始生成每个项目时不显示
                            项和属性的列表。    
                        ShowCommandLine -- 显示 TaskCommandLineEvent 消息  
                        ShowTimestamp -- 将时间戳作为所有消息的前缀
                            显示。                                           
                        ShowEventId -- 显示已开始事件、已完成事件和消息
                            的事件 ID。
                        ForceNoAlign -- 不将文本与控制台缓冲区的大小
                            匹配。
                        DisableMPLogging -- 在非多处理器
                            模式下运行时,禁用输出的多处理器
                            日志记录样式。
                        EnableMPLogging -- 即使在非多处理器
                            模式下运行,也启用多处理器
                            日志记录样式。默认情况下启用此日志记录样式。
                        Verbosity -- 重写此记录器的  /verbosity
                            设置。
                     示例:
                        /consoleloggerparameters:PerformanceSummary;NoSummary;
                                                 Verbosity=minimal

  /noconsolelogger   禁用默认控制台记录器,并且不将事件
                     记录到控制台。(缩写: /noconlog)

  /fileLogger[n]     将生成输出记录到文件中。默认情况下,
                     该文件在当前目录中,名称为
                     “msbuild[n].log”。所有节点中的事件合并到
                     单个日志中。fileLogger 的文件和
                     其他参数的位置可以通过添加 
                     “/fileLoggerParameters[n]”开关来指定。
                     “n”(如果存在)可以为 1-9 的数字,允许最多附加
                     10 个文件记录器。(缩写: /fl[n])
    
  /fileloggerparameters[n]:<parameters>                                
                     为文件记录器提供任何额外的参数。
                     存在此开关意味着
                     存在对应的 /filelogger[n] 开关。
                    “n”(如果存在)可以为 1-9 的数字。
                     任何分布式文件记录器也可以使用 
                     /fileloggerparameters,具体可参阅 /distributedFileLogger 的说明。
                     (缩写: /flp[n])
                     为控制台记录器列出的相同参数
                     可用。某些其他可用参数有:
                        LogFile -- 生成日志将写入其中的
                            日志文件的路径。
                        Append -- 确定是将生成日志附加到日志文件,
                            还是覆盖日志文件。如果设置此
                            开关,则会将生成日志附加到日志文件;
                            如果不设置此开关,则会覆盖
                            现有日志文件的内容。
                            默认值为不附加到日志文件。
                        Encoding -- 指定文件的编码,
                            例如,UTF-8、Unicode 或 ASCII
                     默认的详细级别为 Detailed。
                     示例:
                       /fileLoggerParameters:LogFile=MyLog.log;Append;
                                           Verbosity=diagnostic;Encoding=UTF-8

                       /flp:Summary;Verbosity=minimal;LogFile=msbuild.sum 
                       /flp1:warningsonly;logfile=msbuild.wrn 
                       /flp2:errorsonly;logfile=msbuild.err
    
  /distributedlogger:<central logger>*<forwarding logger>                     
                     使用此记录器来记录 MSBuild 中的事件,向每个节点
                     附加不同的记录器实例。若要指定
                     多个记录器,请分别指定每个记录器。
                     (缩写 /dl)
                     <logger> 语法为: 
                       [<logger class>,]<logger assembly>[;<logger parameters>]
                     <logger class> 语法为: 
                       [<partial or full namespace>.]<logger class name>
                     <logger assembly> 语法为: 
                       {<assembly name>[,<strong name>] | <assembly file>}
                     <logger parameters> 是可选的,并且按键入的
                     形式原样传递给记录器。(缩写: /l)
                     示例: 
                       /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
                       /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

  /distributedFileLogger                                                       
                     将生成输出记录到多个日志文件,每个 MSBuild 节点
                     一个日志文件。这些文件的初始位置为
                     当前目录。默认情况下,这些文件名为
                     “MSBuild<nodeid>.log”。可通过添加
                     “/fileLoggerParameters”开关来指定 
                     这些文件的位置和 fileLogger 的其他参数。

                     如果日志文件名是通过 fileLoggerParameters
                     开关设置的,分布式记录器将使用 fileName 作为
                     模板并将节点 ID 附加到此 fileName 
                     以便为每个节点创建一个日志文件。
    
  /logger:<logger>   使用此记录器来记录 MSBuild 中的事件。若要指定
                     多个记录器,请分别指定每个记录器。
                     <logger> 语法为: 
                       [<logger class>,]<logger assembly>[;<logger parameters>]
                    <logger class> 语法为: 
                        [<partial or full namespace>.]<logger class name>
                   <logger assembly> 语法为: 
                        {<assembly name>[,<strong name>] | <assembly file>}
                     <logger parameters> 是可选的,并按键入的
                    形式原样传递给记录器。(缩写: /l)
                     示例: 
                       /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
                       /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

  /validate          依据默认架构验证项目。(缩写: 
                     /val)

  /validate:<schema> 依据指定的架构验证项目。 (缩写: 
                     /val)
                     示例: 
                       /validate:MyExtendedBuildSchema.xsd

  /ignoreprojectextensions:<extensions>
                     确定要生成哪个项目文件时要忽略的
                     扩展名的列表。使用分号或逗号来分隔
                     多个扩展名。
                     (缩写: /ignore)
                     示例: 
                       /ignoreprojectextensions:.vcproj,.sln
    
  /nodeReuse:<parameters>
                     允许或禁止重复使用 MSBuild 节点。
                     参数包括: 
                     True -- 生成完成后节点将保留,
                             并且将由后面的生成重复使用(默认)
                     False -- 生成完成后节点将不会保留
                     (缩写: /nr)
                     示例: 
                       /nr:true
    
  @<file>            从文本文件插入命令行设置。若要指定
                     多个响应文件,请分别指定每个响应
                     文件。

  /noautoresponse    不自动包括 MSBuild.rsp 文件。(缩写: 
                     /noautorsp)

  /nologo            不显示启动版权标志和版权消息。

  /version           仅显示版本信息。(缩写: /ver)

  /help              显示此用法消息。(缩写: /? 或 /h)

示例:

        MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
        MSBuild MyApp.csproj /t:Clean 
                             /p:Configuration=Debug;TargetFrameworkVersion=v3.5

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/smilelance/archive/2009/09/18/4566501.aspx

 

用批处理编译*.sln工程

最近半年一直到开发公司的MES开发平台工具,自己要维护10多个工程,其中一些公共库更新的也比较频繁,每日的Build相当的消耗时间,因为Release到不同的目录,存在一些DLL版本的问题;为了解决这个问题,首先想到了 FinalBuilder ,但是公司不会买这些玩意,而自己也只找到了一些2.x的破解版本,所以算了.又看了下opensource的几个项目,要不就是比较难用,要不就是功能很简单,我只是想把工程都编译一次罢了,与其这样还不如自己写个批处理得了. 

批处理是直接调用Microsoft Visual Studio 8\Common7\IDE\ 目录内的 devenv.exe ,它启动后就是IDE,提供的参数如下:

用法: 

devenv [solutionfile | projectfile | anyfile.ext] [switches]

devenv 的第一个参数通常是一个解决方案文件或项目文件。如果您希望在编辑器中自动打开文件,也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE会在项目文件的父目录中查找与该项目文件具有相同基名称的 .sln 文件。如果不存在这样的 .sln 文件,IDE 将查找引用该项目的单个 .sln 文件。如果不存在这样的单个.sln 文件,则 IDE 将创建一个具有默认 .sln 文件名且未保存的解决方案,其基名称与项目文件的基名称相同。

命令行编译:

devenv solutionfile.sln /build solutionconfig [ /project projectnameorfile [ /projectconfig name ] ]

 可用的命令行开关:

/Build

使用指定的解决方案配置生成解决方案或

项目。例如“Debug”。如果可能存在多个平台,

则配置名称必须用引号括起来

并且包含平台名称。例如“Debug|Win32”。

/Clean

删除生成结果。

/Command

启动 IDE 并执行该命令。

/Deploy

生成并部署指定的生成配置。

/Edit

在此应用程序的运行实例中打开

指定文件。如果没有正在运行的实例,

则启动一个具有简化窗口布局的新实例。 

/LCID

设置 IDE 中用于用户界面的默认语言。

/Log

将 IDE 活动记录到指定的文件以用于故障排除。

/NoVSIP

禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。

/Out

将生成日志追加到指定的文件中。

/Project

指定生成、清理或部署的项目。

必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。

/ProjectConfig

重写解决方案

配置中指定的项目配置。例如“Debug”。如果可能存在

多个平台,则配置名称必须用引号括起来

并包含平台名称。例如“Debug|Win32”。

必须和 /Project 一起使用。

/Rebuild

先清理,然后使用指定配置生成

解决方案或项目。

/ResetAddin

移除与特定外接程序关联的命令和命令用户界面。

/ResetSettings

恢复 IDE 的默认设置,还可以重置为

指定的 VSSettings 文件。

/ResetSkipPkgs

清除所有添加到 VSPackages 的 SkipLoading 标记。

/Run

编译并运行指定的解决方案。

/RunExit

编译并运行指定的解决方案然后关闭 IDE。

/SafeMode

以安全模式启动 IDE,加载最少数量的窗口。

/Upgrade

升级项目或解决方案以及其中的所有项目。

并相应地创建这些文件的备份。有关备份

过程的更多信息,请参见

“Visual Studio 转换向导”上的帮助。

 产品特定的开关:

/debugexe

打开要调试的指定可执行文件。命令行的其余部分作为它的参数传递到此执行文件。

/useenv    

使用PATH、INCLUDE、LIBPATH

 要从命令行附加调试器,请使用: 

       VsJITDebugger.exe -p <pid>

 

用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客 编写批处理
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客首先确定路径和文件名称约定
:
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
# 程目录:d:\系统平台\
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客#工程SLN文件所在目录:d:\系统平台\infotech.activexengine\
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客#工程SLN文件名称:infotech.activexengine.sln
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客#编译日志文件名称:output.txt
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客#总日志文件名称(位置):d:\系统平台\Rebuilder.log

用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客

用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客批处理文件内容
:
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
@echo  off
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客echo 建立日期 
%date %    # 输出日期
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
d :   # 切换驱动器
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
cd d :\ 系统平台 \   # 进入目录
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
echo 建立日期  %date %   >>  d :\ 系统平台 \ Rebuilder . log   # 写入日期到总日志文件
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
cd d :\ 系统平台 \ infotech . activexengine \   # 进入工程目录
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
" D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe "  infotech . activexengine . sln  / rebuild RELEASE  / out output . txt  # 执行命令,编译工程,以Release模式
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
type output . txt  >>  d :\ 系统平台 \ Rebuilder . log   # 写入日志到总日志内
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
echo 完成构建
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客echo 完成构建 
>>  d :\ 系统平台 \ Rebuilder . log   # 写入完成信息
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
notepad d :\ 系统平台 \ Rebuilder . log   # 用写字板显示编译总日志便于查看
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客
pause  # 暂停
用批处理编译VC2008工程  - zhangjie_0303 - zhangjie_0303的博客

运行该批处理文件将编译 Infotech.ActivexEngine 工程,并且显示出编译的结果到Rebuilder.log 文件中.
按这样的做法,依次将其他的工程写入,这样,每天下班的时候就运行一次,或者放到WINDOWS 的任务中自动运行,保证每个工程都被重建.在批处理文件中还可以增加其他的命令,比如通过命令行备份每次的编译结果到服务器上等等动作.

另外,象FinalBuilder 这些专业的工具还支持从一些版本控制系统中检测最新的版本,或者是生成压缩包,备份文件,刻盘...等等善后工作,有条件的还是使用这些专业软件.

附录:

开源的几个Build工具如下:
 BusyBeeBuilder   
 BusyBeeBuilder provides a powerful,easy-to-use,and extensible .NET build automation tool.

 DevBuildRunner   
 DevBuildRunner is being developed as OSI Certified Open Source Software.  

 .NET Pre-Build   
 .NET Pre-Build是一个XML驱动的预建造工具  

 BuildStudio
 多个开发人员独立地编写大量的源代码组件,这些组件最终进行编译、打包并交付给测试人员或最终用户

 CruiseControl.NET   
 CruiseControl.NET是为.NET 平台提供的一个自动连续集成服务器。

 Draco.NET   
 Draco.NET是为.NET提供的一个连续集成功能

 NAntContrib   
 这是为NAnt提供的定制任务  

 NAnt   
 它是一个基于.NET的编译(Build)工具,能够使项目的编译过程非常容易。

你可能感兴趣的:(批处理,控制台,2008,Visual,Studio,Visual,Studio,2010,批处理文件)