WindowsでIDEを起動せずにVisual Studioコンパイラによってソース(cpp、cs)をコンパイルする

多くの場合、ヘビーウェイトVisual Studio IDEを実行して小さなアプリケーションをコンパイルする必要はなく、本格的なデバッグを必要としないコードテストを実行する必要はありません。 このような場合、Microsoftコンパイラー(cl.exe)およびIDEスタートアップモジュール(devenv.exe、msdev.exe)が提供する機能を使用して、コンソールモードでアプリケーションをすばやくアセンブルできます。 以下は、Windowsコマンドラインインタープリターのスクリプトファイル(cmd)のコードです。小さな変更を加えると、誰でもシステムのVisual Studioへのパスを考慮して自分で構成できます。



cppファイルのコンパイル


Vc ++スクリプトコード_ compile_and_link.cmd
:: --------------------------------------------------------------------------- :: ::       : :: :: sVSPath -     Visual C++, :: :: sVSPathName -      Visual C++ :: :: (    sVSPath, sVSPathName   .:: :: --------------------------------------------------------------------------- :: echo off cls echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- :: -------------------------------------- :: ::   ( ) :: :: -------------------------------------- :: set gavSrc=MySource1.cpp MySource2.cpp :: -------------------------------------- :: :: ,  ,  Qt :: :: -  , Q_OBJECT:: ::     moc_xxx.cpp :: :: -------------------------------------- :: ::set gavSrcQtMoc=gavQtSignalSlot.h set gavSrcQtMoc="" :: -------------------------------------- :: ::  : :: :: 6 - VC6, :: :: 8 - VC8 (2005), :: :: 9 - VC9, :: :: 10 - VC10 (2010) :: :: 11 - VC11 (2012) :: :: -------------------------------------- :: set iCompVer=11 :: -------------------------------------- :: ::  : :: :: 0 - release, :: :: 1 - debug, :: :: 2 -    :: :: ( ) :: :: -------------------------------------- :: set iModeComp=1 :: -------------------------------------- :: ::   : :: :: 0 - , 1 -  :: :: -------------------------------------- :: set bLibQt=0 set bLibCrt=0 set bLibBoost=0 :: -------------------------------------- :: ::    Qt: :: :: 0 - shared (), :: :: 1 - static () :: :: -------------------------------------- :: set iModeQt=0 :: -------------------------------------- :: ::   WINDDK :: :: 0 -   :: :: 1 - WINDDK  Win2000, WinXP :: :: (   ..  :: :: gavIncPathDdkXP,gavLibPathDdkXP:: :: - . ) :: :: -------------------------------------- :: set iWinddk=0 :: -------------------------------------- :: ::    :: :: (   : -D ) :: :: -------------------------------------- :: ::set gavCompilFlags=-Dtest :: -------------------------------------- :: ::   ( ) :: :: -------------------------------------- :: :: Win32 character-mode application: set gavSubsystem=CONSOLE :: Application does not require a console: ::set gavSubsystem=WINDOWS :: Device drivers for Windows NT: ::set gavSubsystem=NATIVE :: Application that runs with the POSIX subsystem in Windows NT: ::set gavSubsystem=POSIX :: Application that runs on a Windows CE device: ::set gavSubsystem=WINDOWSCE :: -------------------------------------- :: ::   Visual Studio. :: :: !!!   !!! :: :: -------------------------------------- :: :: VS6 (!!    VS6 ..     -   ) if %iCompVer%==6 set sVSPath=C:\Progs\VC98 if %iCompVer%==6 set sVSPathName=%sVSPath%\bin\cl.exe :: VS8 if %iCompVer%==8 set sVSPath=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 8\VC if %iCompVer%==8 set sVSPathName=%sVSPath%\bin\cl.exe :: VS9 if %iCompVer%==9 set sVSPath=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 9.0\VC if %iCompVer%==9 set sVSPathName=%sVSPath%\bin\cl.exe :: VS10 if %iCompVer%==10 set sVSPath=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 10.0\VC if %iCompVer%==10 set sVSPathName=%sVSPath%\bin\cl.exe :: .  VS2010: if %iCompVer%==10 set gavIncPathMy=%SYSTEMDRIVE%\Program Files\Microsoft SDKs\Windows\v7.0A\Include if %iCompVer%==10 set gavLibPathMy=%SYSTEMDRIVE%\Program Files\Microsoft SDKs\Windows\v7.0A\Lib :: VS11 if %iCompVer%==11 set sVSPath=%SYSTEMDRIVE%\Program Files (x86)\Microsoft Visual Studio 11.0\VC if %iCompVer%==11 set sVSPathName=%sVSPath%\bin\cl.exe :: .  VS2010: if %iCompVer%==11 set gavIncPathMy=%SYSTEMDRIVE%\Program Files (x86)\Windows Kits\8.0\Include\um if %iCompVer%==11 set gavIncPathMy2=%SYSTEMDRIVE%\Program Files (x86)\Windows Kits\8.0\Include\Shared if %iCompVer%==11 set gavLibPathMy=%SYSTEMDRIVE%\Program Files (x86)\Windows Kits\8.0\Include\Lib if %iCompVer%==11 set gavLibPathMy2=%SYSTEMDRIVE%\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86 ::if %iCompVer%==11 set gavLibPathMy2=%SYSTEMDRIVE%\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64 echo Compilator version: VC%iCompVer% echo Compilator path: %sVSPathName% :: -------------------------------------- :: ::   Boost :: :: -------------------------------------- :: set BOOST_ROOT=C:\Progs\boost\boost_1_49_0 :: -------------------------------------- :: ::     :: :: .     :: ::   ! :: :: -------------------------------------- :: set gavIncPathVS="%sVSPath%\include" set gavIncPathQt="%QTDIR%\include" set gavIncPathBoost="%BOOST_ROOT%" set gavIncPathDdkCrt="C:\Progs\WINDDK\2600.1106\inc\crt" set gavIncPathDdkXP="C:\Progs\WINDDK\2600.1106\inc\w2k" if not "%gavIncPathMy%"=="" (set gavIncPathAll=-I"%gavIncPathMy%" if not "%gavIncPathMy2%"=="" ( set gavIncPathAll=-I"%gavIncPathMy%" -I"%gavIncPathMy2%" ) ) if %iWinddk%==1 (set gavIncPathAll=%gavIncPathAll% -I%gavIncPathDdkCrt% -I%gavIncPathDdkXP%) if not %gavIncPathVS%=="" (set gavIncPathAll=%gavIncPathAll% -I%gavIncPathVS%) if %bLibQt%==1 (if not %gavIncPathQt%=="" (set gavIncPathAll=%gavIncPathAll% -I%gavIncPathQt%)) if %bLibBoost%==1 (if not %gavIncPathBoost%=="" (set gavIncPathAll=%gavIncPathAll% -I%gavIncPathBoost%)) echo Include pathes: %gavIncPathAll% :: -------------------------------------- :: ::     (.lib) :: :: .     :: ::   ! :: :: -------------------------------------- :: set gavLibPathDdkXP=C:\Progs\WINDDK\2600.1106\lib\wxp\i386 set gavLibPathVS=%sVSPath%\lib set gavLibPathAll="" if %iWinddk%==1 (set gavLibPathAll=%gavLibPathAll% /LIBPATH:"%gavLibPathDdkXP%") if not "%gavLibPathVS%"=="" (set gavLibPathAll=%gavLibPathAll% /LIBPATH:"%gavLibPathVS%") if not "%gavLibPathMy%"=="" (set gavLibPathAll=%gavLibPathAll% /LIBPATH:"%gavLibPathMy%" if not "%gavLibPathMy2%"=="" ( set gavLibPathAll=%gavLibPathAll% /LIBPATH:"%gavLibPathMy%" /LIBPATH:"%gavLibPathMy2%" ) ) set gavLibPathBoost="%BOOST_ROOT%\stage\lib" if %bLibBoost%==1 (if not %gavLibPathBoost%=="" (set gavLibPathAll=%gavLibPathAll% /LIBPATH:%gavLibPathBoost%)) set gavLibPathQtReleaseShared="%QTDIR%\lib\release\shared" set gavLibPathQtReleaseStatic="%QTDIR%\lib\release\static" set gavLibPathQtDebugShared="%QTDIR%\lib\debug\shared" set gavLibPathQtDebugStatic="%QTDIR%\lib\debug\static" if %bLibQt%==1 ( if %iModeComp%==0 ( if %iModeQt%==0 ( echo Qt mode: release shared set gavLibPathAll=%gavLibPathAll% /LIBPATH:%gavLibPathQtReleaseShared% ) if %iModeQt%==1 ( echo Qt mode: release static set gavLibPathAll=%gavLibPathAll% /LIBPATH:%gavLibPathQtReleaseStatic% ) ) if %iModeComp%==1 ( if %iModeQt%==0 ( echo Qt mode: debug shared set gavLibPathAll=%gavLibPathAll% /LIBPATH:%gavLibPathQtDebugShared% ) if %iModeQt%==1 ( echo Qt mode: debug static set gavLibPathAll=%gavLibPathAll% /LIBPATH:%gavLibPathQtDebugStatic% ) ) ) echo Lib pathes: %gavLibPathAll% :: -------------------------------------- :: ::   run-time. :: ::      :: :: -------------------------------------- :: set gavLibFilesCrt="" if %bLibCrt%==1 (set gavLibFilesCrt=user32.lib ole32.lib Gdi32.lib Ws2_32.lib Imm32.lib Comdlg32.lib Winspool.lib Advapi32.lib) if not "%gavLibFilesCrt%"=="" (set gavLibFilesAll=%gavLibFilesCrt%) :: -------------------------------------- :: ::   Qt. :: :: -------------------------------------- :: set gavLibFilesQtShared=qtmain.lib qt-mt333.lib set gavLibFilesQtStatic=qtmain.lib qt-mt.lib if %bLibQt%==1 ( if %iModeQt%==0 (set gavLibFilesAll=%gavLibFilesAll% %gavLibFilesQtShared%) if %iModeQt%==1 (set gavLibFilesAll=%gavLibFilesAll% %gavLibFilesQtStatic%) ) echo Lib files: %gavLibFilesAll% :: -------------------------------------- :: ::    :: :: -------------------------------------- :: if %iModeComp%==0 ( set gavLinkMode=/RELEASE ::  DLL: set gavCompMode=/MD set gavCompMode=/MT set gavOptimize=/O2 /GA ) if %iModeComp%==1 ( set gavLinkMode=/DEBUG ::  DLL: set gavCompMode=/MDd set gavCompMode=/MTd ::set gavOptimize=/Od /ZI set gavOptimize=/Od /Z7 ) if %iModeComp%==2 ( set gavLinkMode= set gavCompMode= set gavOptimize=/Zg ) if %bLibQt%==1 (if %iModeQt%==1 (set gavCompMode=/MDd)) :: -------------------------------------- :: ::    :: :: -------------------------------------- :: if not %gavSubsystem%=="" (set gavLinkSubsys=/SUBSYSTEM:%gavSubsystem%) :: -------------------------------------- :: ::   :: :: -------------------------------------- :: if %bLibQt%==1 ( if %iModeQt%==0 (set gavCompilFlags=%gavCompilFlags% -DQT_DLL) ) :: -------------------------------------- :: ::    :: :: -------------------------------------- :: set gavOldObj=%gavSrc:.cpp=.obj,% set gavOldObj=%gavOldObj:.c=.obj,% set gavOldAsm=%gavOldObj:.obj=.asm% for /F "tokens=1" %%A in ("%gavSrc%") do (set gavMainName=%%A) set gavMainName=%gavMainName:.cpp=% set gavMainName=%gavMainName:.c=% set gavDelExt= %gavMainName%.exe, %gavMainName%.pdb, %gavMainName%.ilk, %gavOldObj% %gavOldAsm% __vc++_%gavMainName%.log echo. echo Deleting old files: %gavDelExt% ... echo. del %gavDelExt% echo. echo ------------------ echo Compiling start... echo ------------------ echo. if %bLibQt%==1 (if not %gavSrcQtMoc%=="" ( echo ------------------ echo Mocing file... echo ------------------ echo on %QTDIR%\bin\moc %gavSrcQtMoc% -o moc_%gavSrcQtMoc%.cpp @echo off set gavSrc=%gavSrc% moc_%gavSrcQtMoc%.cpp )) echo on "%sVSPathName%" /EHsc %gavIncPathAll% %gavCompilFlags% /Fa %gavSrc% %gavCompMode% %gavOptimize% /link %gavLinkSubsys% %gavLinkMode% %gavLibPathAll% %gavLibFilesAll%>"__vc++_%gavMainName%.log" @echo off echo. echo ------------------ echo Compiling end... echo ------------------ echo. echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- :: -------------------------------------- :: pause
      
      









上記のシナリオで一度設定する必要がある主なパラメーター:

1)[ Visual Studioへのパス]セクションで、Visual Studioのさまざまなバージョンのファイルへのパスを指定する必要があります(複数インストールされている場合)。

  • sVSPath -Visual Studioのメインディレクトリへのパス、つまり このバージョンのVSの他のすべてのサブディレクトリを含むルートディレクトリに移動します。
  • gavIncPathMy -VS 11.0が独自のパスを設定してヘッダーファイルを含める必要がある場合があります。




2) 「Boostへのパス」セクションで、 BOOST_ROOT -Boostライブラリのルートディレクトリへのパス(インストールしている場合)を設定できます。

3) 「ファイルを含めるためのパスの構成」セクションで、必要に応じて、ヘッダーファイルQt、WinDDKへのパスを指定できます。

4) 「ライブラリ(.lib)ファイルへのパスの構成」セクションで、ライブラリファイル(特にWinDDKの場合)へのパスが設定されます。



それほど頻繁ではありませんが、特定のプロジェクトに対して以下のパラメーターを構成する必要がある場合があります。

iCompVerは、使用されるコンパイラのバージョンです(VC6の場合は6、VC8の場合は8(2005)、VC9の場合は9、VC10の場合は10(2010)、VC11の場合は11(2012)。

gavLibFilesQtShared-動的にリンクされたQtライブラリの.libファイルの名前。

gavLibFilesQtStatic-静的にリンクされたQtライブラリの.libファイル名。

gavLibFilesCrt -Windowsで使用される標準の動的ライブラリの.libファイル名。

iModeQt -Qtライブラリリンクモード。

gavCompMode-コンパイルモードフラグ(シングルスレッド、マルチスレッドなど)。

gavOptimize-コンパイラコード最適化フラグ。



ほとんどの場合、パラメーターを変更する必要があります。

gavSrc-ソースコード付きのファイル名。スペースで区切られています(複数ある場合)。

bLibQt-アプリケーションのビルド時にQtライブラリを使用するフラグ(0/1)。

bLibCrt-アプリケーションをビルドするときに標準のWindows CRTライブラリを使用するためのフラグ(0/1)。

bLibBoost-アプリケーションのビルド時にBoostライブラリを使用する必要があることを示すフラグ(0/1)。

gavSubsystem-作成されたアプリケーションのサブシステム: CONSOLE-コンソール、 WINDOWS-グラフィカルインターフェイス。



コンパイルの結果(エラー、メッセージ)は、ファイル__vc ++ _ XXX.logで表示できます。XXXはメインソースファイルの名前です。



プロジェクトファイルからcppアプリケーションを構築する


同様に、IDEを起動せずに、プロジェクトとワークスペースファイル(dsp、dsw)を使用してプロジェクトをビルドできます。

Vc ++ _スクリプトコード_ dsp_dsw_compile.cmd
 ::        sVSPathName, ::       Visual Studio   ::   sVSPathName    ... @echo off cls echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- :: -------------------------------------- :: ::    (dsp)   (dsw): set sPrjFile=MyWorkspace.dsp :: -------------------------------------- :: ::  : 0 - release, 1 - debug, 2 - release  debug: set iMode=2 :: -------------------------------------- :: ::   : :: 0 -   , :: 1 -   , :: 2 -    (  iMode=2) set iSubMode=2 :: -------------------------------------- :: ::  : if %sPrjFile:.dsp=% == %sPrjFile% ( set sPrjName=%sPrjFile:.dsw=% ) ELSE ( set sPrjName=%sPrjFile:.dsp=% ) ::   -   release: set sConfigNameRelease="%sPrjName% - Win32 Release" ::   -   debug: set sConfigNameDebug="%sPrjName% - Win32 Debug" :: -------------------------------------- :: ::   Visual Studio: :: set sVSPathName=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 6.0\Common\MSDev98\Bin\MSDEV.EXE :: set sVSPathName=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 8\Common7\IDE\VCExpress.exe :: set sVSPathName=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe :: -------------------------------------- :: :: : if %iSubMode%==0 ( set iCompMode=/CLEAN ) if %iSubMode%==1 ( set iCompMode= ) if %iSubMode%==2 ( set iCompMode=/REBUILD ) :: -------------------------------------- :: echo. echo --------------------------------- echo [%sPrjName%]: compiling start... echo --------------------------------- echo. @echo off if %iMode%==0 ( ::  release: echo [%sPrjName%]: configuration mode: echo %sConfigNameRelease% echo on "%sVSPathName%" %sPrjFile% /MAKE %sConfigNameRelease% %iCompMode% /OUT __vc++_compile_release.log ) @echo off if %iMode%==1 ( ::  debug: echo [%sPrjName%]: configuration mode: echo %sConfigNameDebug% echo on "%sVSPathName%" %sPrjFile% /MAKE %sConfigNameDebug% %iCompMode% /OUT __vc++_compile_debug.log ) @echo off if %iMode%==2 ( ::  release  debug: echo [%sPrjName%]: configuration modes: echo %sConfigNameRelease% echo %sConfigNameDebug% echo on "%sVSPathName%" %sPrjFile% /MAKE %sConfigNameRelease% %iCompMode% /OUT __vc++_compile_release.log "%sVSPathName%" %sPrjFile% /MAKE %sConfigNameDebug% %iCompMode% /OUT __vc++_compile_debug.log ) @echo off echo. echo --------------------------------- echo [%sPrjName%]: compiling end. echo --------------------------------- echo. echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- :: -------------------------------------- :: pause
      
      









csファイルのコンパイル


上記の機能はC#にも実装されています。

Vcスクリプトコード#_compile_and_link.cmd
 :: --------------------------------------------------------------------------- :: ::       : :: :: sVSPath -     Visual C#, :: :: sVSPathName -      Visual C# :: :: (  sVSPath, sVSPathName   .:: :: --------------------------------------------------------------------------- :: echo off cls echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- :: -------------------------------------- :: ::   ( ) :: :: -------------------------------------- :: set gavSrc=Program.cs :: -------------------------------------- :: ::  : :: :: 0 - release, :: :: 1 - debug, :: :: -------------------------------------- :: set iModeComp=1 :: -------------------------------------- :: ::   ( ) :: :: -------------------------------------- :: :: /target:exe     ( ) ( : /t:exe) set gavSubsystem=exe :: /target:winexe    Windows ( : /t:winexe) ::set gavSubsystem=winexe :: /target:library   ( : /t:library) ::set gavSubsystem=library :: /target:module  ,        ( : /t:module) ::set gavSubsystem=module :: /target:appcontainerexe    Appcontainer ( : /t:appcontainerexe) ::set gavSubsystem=appcontainerexe :: /target:winmdobj      Windows,  WinMDExp ( : /t:winmdobj) ::set gavSubsystem=winmdobj :: -------------------------------------- :: ::   ( ) :: :: (x86, Itanium, x64, arm  anycpu. :: ::   : anycpu.) :: :: -------------------------------------- :: set gavPlatform=anycpu :: -------------------------------------- :: ::    :: :: -------------------------------------- :: ::set gavCompilFlags= :: -------------------------------------- :: ::   Visual Studio. :: :: !!!   !!! :: :: -------------------------------------- :: set sVSPath=%WINDIR%\Microsoft.NET\Framework\v4.0.30319 set sVSPathName=%sVSPath%\csc.exe :: -------------------------------------- :: ::     :: :: .     :: ::   ! :: :: -------------------------------------- :: set gavIncPathVS="%sVSPath%" if not "%gavIncPathMy%"=="" (set gavIncPathAll=-I"%gavIncPathMy%") if not %gavIncPathVS%=="" (set gavIncPathAll=%gavIncPathAll% -I%gavIncPathVS%) echo Include pathes: %gavIncPathAll% :: -------------------------------------- :: ::     (.lib) :: :: .     :: ::   ! :: :: -------------------------------------- :: set gavLibPathVS=%sVSPath% if not "%gavLibPathVS%"=="" (set gavLibPathAll=/lib:"%gavLibPathVS%") if not "%gavLibPathMy%"=="" (set gavLibPathAll=%gavLibPathAll% /lib:"%gavLibPathMy%") echo Lib pathes: %gavLibPathAll% :: -------------------------------------- :: ::   run-time. :: ::      :: :: -------------------------------------- :: :: set gavLibFilesCrt=user32.lib ole32.lib Gdi32.lib Ws2_32.lib Imm32.lib Comdlg32.lib Winspool.lib Advapi32.lib ::set gavLibFilesCrt="" if not "%gavLibFilesCrt%"=="" (set gavLibFilesAll=%gavLibFilesCrt%) echo Lib files: %gavLibFilesAll% :: -------------------------------------- :: ::    :: :: -------------------------------------- :: if %iModeComp%==0 ( set gavCompilFlags=%gavCompilFlags% /D:_RELEASE set gavCompMode=/debug- set gavOptimize=/optimize+ ) if %iModeComp%==1 ( set gavCompilFlags=%gavCompilFlags% /D:_DEBUG set gavCompMode=/debug+ set gavOptimize=/optimize- ) :: -------------------------------------- :: ::    :: :: -------------------------------------- :: if not %gavSubsystem%=="" (set gavLinkSubsys=/t:%gavSubsystem%) :: -------------------------------------- :: set gavDelExt=*.obj, *.exe, *.log, *.pdb echo. echo Deleting old files: %gavDelExt% ... echo. del %gavDelExt% echo. echo ------------------ echo Compiling start... echo ------------------ echo. echo on "%sVSPathName%" %gavDefine% %gavCompilFlags% %gavCompMode% %gavOptimize% %gavLinkSubsys% /utf8output /fullpaths /platform:%gavPlatform% %gavLibPathAll% %gavLibFilesAll% %gavSrc%>__vc#_compile.log @echo off echo. echo ------------------ echo Compiling end... echo ------------------ echo. echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- :: -------------------------------------- :: pause
      
      









ソリューションファイル(sln)とプロジェクト(csproj)からcsアプリケーションをビルドします


Vcスクリプトコード#_sln_csproj_compile.cmd
 ::        sVSPathName, ::       Visual Studio   ::   sVSPathName    ... @echo off cls echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- :: -------------------------------------- :: ::    (.csproj)   (sln): set sPrjFile=MyProject.csproj :: -------------------------------------- :: ::  : 0 - release, 1 - debug, 2 - release  debug: set iMode=2 :: -------------------------------------- :: ::   : :: 0 -   , :: 1 -   , :: 2 -    (  iMode=2) set iSubMode=2 :: -------------------------------------- :: ::  : if %sPrjFile:.sln=% == %sPrjFile% ( set sPrjName=%sPrjFile:.sln=% ) ELSE ( set sPrjName=%sPrjFile:.csproj=% ) ::   -   release: :: set sConfigNameRelease="Release|Win32" set sConfigNameRelease="Release" ::   -   debug: :: set sConfigNameDebug="Debug|Win32" set sConfigNameDebug="Debug" :: -------------------------------------- :: ::   Visual Studio: set sVSPathName=%SYSTEMDRIVE%\Program Files (x86)\Microsoft Visual Studio\11.0\Common7\IDE\devenv.exe :: set sVSPathName=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 8\Common7\IDE\VCExpress.exe :: set sVSPathName=%SYSTEMDRIVE%\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe :: -------------------------------------- :: :: : if %iSubMode%==0 ( set iCompMode=/Clean ) if %iSubMode%==1 ( set iCompMode= ) if %iSubMode%==2 ( set iCompMode=/Rebuild ) :: -------------------------------------- :: echo. echo --------------------------------- echo [%sPrjName%]: compiling start... echo --------------------------------- echo. @echo off if %iMode%==0 ( ::  release: echo [%sPrjName%]: configuration mode: echo %sConfigNameRelease% echo on "%sVSPathName%" %sPrjFile% /Build %sConfigNameRelease% /Out __vc#_compile_release.log ) @echo off if %iMode%==1 ( ::  debug: echo [%sPrjName%]: configuration mode: echo %sConfigNameDebug% echo on "%sVSPathName%" %sPrjFile% /Build %sConfigNameDebug% /Out __vc#_compile_debug.log ) @echo off if %iMode%==2 ( ::  release  debug: echo [%sPrjName%]: configuration modes: echo %sConfigNameRelease% echo %sConfigNameDebug% echo on "%sVSPathName%" %sPrjFile% /Build %sConfigNameRelease% /Out __vc#_compile_release.log "%sVSPathName%" %sPrjFile% /Build %sConfigNameDebug% /Out __vc#_compile_debug.log Rem /project lxDbLib.csproj /projectconfig Debug ) @echo off echo. echo --------------------------------- echo [%sPrjName%]: compiling end. echo --------------------------------- echo. echo -------------------------------------- echo ------ %date% [%time%] ------ echo -------------------------------------- echo ---------- .:: -=LEXX=- ::. ---------- echo -------------------------------------- :: -------------------------------------- :: pause
      
      









一見したところ、このコードのかさばりは、コンソールでの後続の作業の単純さによって補われています。 誰もがプログラミングを楽しんでいます!!!



All Articles