码迷,mamicode.com
首页 > 其他好文 > 详细

开发过程中编写的一些批处理

时间:2015-05-09 10:04:32      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

1.BuildRelease.bat

用于不开启VS直接编译、部署、创建和恢复快照 WindowsPhone APP,注册WindowsPhone手机。

进行了编译和部署的效果:

技术分享

BuildRelease.bat

  1 @echo off
  2 pushd "%~dp0"
  3 title Build Release
  4 set folder=%CD%
  5 set MSBUILD=%windir%\microsoft.net\framework\v4.0.30319\msbuild.exe
  6 set APPDEPLOYCMD="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.1\Tools\AppDeploy\AppDeployCmd.exe"
  7 set APPDEPLOY="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.1\Tools\AppDeploy\AppDeploy.exe"
  8 set ISETOOL="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.1\Tools\IsolatedStorageExplorerTool\isetool.exe"
  9 set PHONEREG="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.1\Tools\Phone Registration\PhoneReg.exe"
 10 set PRODUCTID=6d24eb8a-60e9-4d9c-a943-f6d5c7796649
 11 set DESKTOPPATH=myfiles
 12 set XAPFILE="%folder%\Youku.Bin\Release\Youku_Release_ARM.xap"
 13 set msbuildlog="%folder%\lastmsbuild.log"
 14 set filelogger=/fl /flp:logfile=%msbuildlog%
 15 if "%folder%"=="" goto :edit
 16 if NOT EXIST %folder% goto :edit
 17 :menu
 18 echo.
 19 echo Target: %folder%
 20 echo ^<Menu^>
 21 echo 1.Build    2.Rebuild    3[3].Deploy and Run    4.Update    5.Uninstall
 22 echo 6.Dir IsolatedStore     7.Take snapshot        8.Restore snapshot
 23 echo 9.Phone Reg Tool        L.Open last msbuild log file       x.Exit
 24 set input=
 25 set /p input=Command:
 26 if "%input%"=="1" goto :build
 27 if "%input%"=="2" goto :rebuild
 28 if "%input%"=="3" goto :deploy
 29 if "%input%"=="4" goto :update
 30 if "%input%"=="5" goto :uninstall
 31 if "%input%"=="6" goto :isedir
 32 if "%input%"=="7" goto :isets
 33 if "%input%"=="8" goto :isers
 34 if "%input%"=="9" goto :phonereg
 35 if "%input%"=="l" goto :openlogfile
 36 if "%input%"=="L" goto :openlogfile
 37 if "%input%"=="x" goto :end
 38 if "%input%"=="X" goto :end
 39 if "%input%"=="exit" goto :end
 40 if "%input%"=="33" goto :startAPPDEPLOY
 41 goto :menu
 42 :build
 43 echo Boot Building...
 44 echo ^(1/5^) Building UPlayer_WRT.vcxproj ...
 45 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_WRT\UPlayer_WRT.vcxproj"
 46 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD UPlayer_WRT.vcxproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 47 echo ^(2/5^) Building UPlayer_players.csproj ...
 48 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_players\UPlayer_players.csproj"
 49 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD UPlayer_players.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 50 echo ^(3/5^) Building Youku.Pattern.csproj ...
 51 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Pattern\Youku.Pattern.csproj"
 52 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.Pattern.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 53 echo ^(4/5^) Building Youku.Online.csproj ...
 54 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Online\Youku.Online.csproj"
 55 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.Online.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 56 echo ^(5/5^) Building Youku.csproj ...
 57 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku\Youku.csproj"
 58 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.csproj ERROR! ^(%ERRORLEVEL%^)) else (echo ALL BUILD OK.)
 59 goto :menu
 60 :rebuild
 61 set /p MYCONSOLE=Rebuild with MYCONSOLE?(Y/N):
 62 set DefineConstants=
 63 if "%MYCONSOLE%"=="y" set DefineConstants=DefineConstants^=^"MYCONSOLE^";
 64 if "%MYCONSOLE%"=="Y" set DefineConstants=DefineConstants^=^"MYCONSOLE^";
 65 echo Boot Rebuilding...
 66 echo ^(1/5^) Rebuilding UPlayer_WRT.vcxproj ...
 67 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_WRT\UPlayer_WRT.vcxproj"
 68 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD UPlayer_WRT.vcxproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 69 echo ^(2/5^) Rebuilding UPlayer_players.csproj ...
 70 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_players\UPlayer_players.csproj"
 71 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD UPlayer_players.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 72 echo ^(3/5^) Rebuilding Youku.Pattern.csproj ...
 73 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Pattern\Youku.Pattern.csproj"
 74 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.Pattern.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 75 echo ^(4/5^) Rebuilding Youku.Online.csproj ...
 76 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Online\Youku.Online.csproj"
 77 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.Online.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 78 echo ^(5/5^) Rebuilding Youku.csproj ...
 79 %MSBUILD% /t:Rebuild /p:%DefineConstants%Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku\Youku.csproj"
 80 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.csproj ERROR! ^(%ERRORLEVEL%^)) else (echo ALL REBUILD OK.)
 81 goto :menu
 82 :deploy
 83 echo Deploying. Please wait.................
 84 if NOT EXIST %APPDEPLOYCMD% goto noAPPDEPLOYCMD
 85 %APPDEPLOYCMD% /installlaunch %XAPFILE% /targetdevice:de
 86 if %ERRORLEVEL% EQU 5 goto :startAPPDEPLOY
 87 if %ERRORLEVEL% NEQ 0 (echo ^>^> DEPLOY ERROR! ^(%ERRORLEVEL%^)) else (echo DEPLOY OK.)
 88 goto :menu
 89 :noAPPDEPLOYCMD
 90 echo Warnning: AppDeployCmd.exe is not found!
 91 :startAPPDEPLOY
 92 echo Start AppDeploy.exe ...
 93 start "" /d "%folder%\Youku.Bin\Release" %APPDEPLOY%
 94 ping -n 2 127.1>nul
 95 goto :menu
 96 :update
 97 echo Updating. Please wait.................
 98 if NOT EXIST %APPDEPLOYCMD% goto noAPPDEPLOYCMD
 99 %APPDEPLOYCMD% /update %XAPFILE% /targetdevice:de
100 if %ERRORLEVEL% EQU 5 goto :startAPPDEPLOY
101 if %ERRORLEVEL% NEQ 0 (echo ^>^> UPDATE ERROR! ^(%ERRORLEVEL%^)) else (echo UPDATE OK.)
102 goto :menu
103 :uninstall
104 echo Uninstall. Please wait.................
105 if NOT EXIST %APPDEPLOYCMD% (echo Warnning: AppDeployCmd.exe is not found!&&goto :menu)
106 echo   ^* Product ID: %PRODUCTID%
107 %APPDEPLOYCMD% /uninstall %PRODUCTID% /targetdevice:de
108 if %ERRORLEVEL% NEQ 0 (echo ^>^> Uninstall ERROR! ^(%ERRORLEVEL%^)) else (echo Uninstall OK.)
109 goto :menu
110 :isedir
111 echo Dir IsolatedStore. Please wait.................
112 echo   ^* Product ID: %PRODUCTID%
113 %ISETOOL% dir de %PRODUCTID%
114 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Dir isolated storage ERROR!) else (echo Dir isolated storage OK.)
115 goto :menu
116 :isets
117 echo Take snapshot. Please wait.................
118 echo   ^* Product ID: %PRODUCTID%
119 echo   ^* Desktop Path: %DESKTOPPATH%
120 %ISETOOL% ts de %PRODUCTID% "%folder%\%DESKTOPPATH%"
121 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Take snapshot ERROR!) else (echo Take snapshot OK.)
122 goto :menu
123 :isers
124 echo Restore snapshot. Please wait.................
125 echo   ^* Product ID: %PRODUCTID%
126 echo   ^* Desktop Path: %DESKTOPPATH%\IsolatedStore
127 %ISETOOL% rs de %PRODUCTID% "%folder%\%DESKTOPPATH%\IsolatedStore"
128 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Restore snapshot ERROR!) else (echo Restore snapshot OK.)
129 goto :menu
130 :phonereg
131 echo Start PhoneReg.exe ...
132 start "" %PHONEREG%
133 ping -n 2 127.1>nul
134 goto :menu
135 :openlogfile
136 if exist %msbuildlog% (start "" notepad %msbuildlog%) else (echo Logfile not found.) 
137 goto :menu
138 :edit
139 start "" notepad "%0"
140 :end
141 popd
142 exit

 

BuildRelease_8.0.bat (WindowsPhone 8.0版本)

技术分享
  1 @echo off
  2 pushd "%~dp0"
  3 title Build Release for WP8.0
  4 set folder=%CD%
  5 set MSBUILD=%windir%\microsoft.net\framework\v4.0.30319\msbuild.exe
  6 set XAPDEPLOYCMD="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\XAP Deployment\XapDeployCmd.exe"
  7 set XAPDEPLOY="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\XAP Deployment\XapDeploy.exe"
  8 set ISETOOL="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\IsolatedStorageExplorerTool\isetool.exe"
  9 set PHONEREG="%ProgramFiles(x86)%\Microsoft SDKs\Windows Phone\v8.0\Tools\Phone Registration\PhoneReg.exe"
 10 set PRODUCTID=6d24eb8a-60e9-4d9c-a943-f6d5c7796649
 11 set DESKTOPPATH=myfiles
 12 set XAPFILE="%folder%\Youku.Bin\Release\Youku_Release_ARM.xap"
 13 set msbuildlog="%folder%\lastmsbuild.log"
 14 set filelogger=/fl /flp:logfile=%msbuildlog%
 15 if "%folder%"=="" goto :edit
 16 if NOT EXIST %folder% goto :edit
 17 :menu
 18 echo.
 19 echo Target: %folder%
 20 echo ^<Menu^>
 21 echo 1.Build    2.Rebuild    3[3].Deploy and Run    4.Update    5.Uninstall
 22 echo 6.Dir IsolatedStore     7.Take snapshot        8.Restore snapshot
 23 echo 9.Phone Reg Tool        L.Open last msbuild log file       x.Exit
 24 set input=
 25 set /p input=Command:
 26 if "%input%"=="1" goto :build
 27 if "%input%"=="2" goto :rebuild
 28 if "%input%"=="3" goto :deploy
 29 if "%input%"=="4" goto :update
 30 if "%input%"=="5" goto :uninstall
 31 if "%input%"=="6" goto :isedir
 32 if "%input%"=="7" goto :isets
 33 if "%input%"=="8" goto :isers
 34 if "%input%"=="9" goto :phonereg
 35 if "%input%"=="l" goto :openlogfile
 36 if "%input%"=="L" goto :openlogfile
 37 if "%input%"=="x" goto :end
 38 if "%input%"=="X" goto :end
 39 if "%input%"=="exit" goto :end
 40 if "%input%"=="33" goto :startXAPDEPLOY
 41 goto :menu
 42 :build
 43 echo Boot Building...
 44 echo ^(1/5^) Building UPlayer_WRT.vcxproj ...
 45 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_WRT\UPlayer_WRT.vcxproj"
 46 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD UPlayer_WRT.vcxproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 47 echo ^(2/5^) Building UPlayer_players.csproj ...
 48 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_players\UPlayer_players.csproj"
 49 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD UPlayer_players.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 50 echo ^(3/5^) Building Youku.Pattern.csproj ...
 51 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Pattern\Youku.Pattern.csproj"
 52 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.Pattern.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 53 echo ^(4/5^) Building Youku.Online.csproj ...
 54 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Online\Youku.Online.csproj"
 55 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.Online.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 56 echo ^(5/5^) Building Youku.csproj ...
 57 %MSBUILD% /t:Build /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku\Youku.csproj"
 58 if %ERRORLEVEL% NEQ 0 (echo ^>^> BUILD Youku.csproj ERROR! ^(%ERRORLEVEL%^)) else (echo ALL BUILD OK.)
 59 goto :menu
 60 :rebuild
 61 set /p MYCONSOLE=Rebuild with MYCONSOLE?(Y/N):
 62 set DefineConstants=
 63 if "%MYCONSOLE%"=="y" set DefineConstants=DefineConstants^=^"MYCONSOLE^";
 64 if "%MYCONSOLE%"=="Y" set DefineConstants=DefineConstants^=^"MYCONSOLE^";
 65 echo Boot Rebuilding...
 66 echo ^(1/5^) Rebuilding UPlayer_WRT.vcxproj ...
 67 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_WRT\UPlayer_WRT.vcxproj"
 68 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD UPlayer_WRT.vcxproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 69 echo ^(2/5^) Rebuilding UPlayer_players.csproj ...
 70 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\UPlayer\UPlayer_players\UPlayer_players.csproj"
 71 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD UPlayer_players.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 72 echo ^(3/5^) Rebuilding Youku.Pattern.csproj ...
 73 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Pattern\Youku.Pattern.csproj"
 74 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.Pattern.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 75 echo ^(4/5^) Rebuilding Youku.Online.csproj ...
 76 %MSBUILD% /t:Rebuild /p:Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku.Online\Youku.Online.csproj"
 77 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.Online.csproj ERROR! ^(%ERRORLEVEL%^)&&goto :menu)
 78 echo ^(5/5^) Rebuilding Youku.csproj ...
 79 %MSBUILD% /t:Rebuild /p:%DefineConstants%Configuration=Release;Platform=ARM /nologo /noconsolelogger %filelogger% "%folder%\Youku\Youku.csproj"
 80 if %ERRORLEVEL% NEQ 0 (echo ^>^> REBUILD Youku.csproj ERROR! ^(%ERRORLEVEL%^)) else (echo ALL REBUILD OK.)
 81 goto :menu
 82 :deploy
 83 echo Deploying. Please wait.................
 84 if NOT EXIST %XAPDEPLOYCMD% goto noXAPDEPLOYCMD
 85 %XAPDEPLOYCMD% /installlaunch %XAPFILE% /targetdevice:de
 86 if %ERRORLEVEL% EQU 5 goto :startXAPDEPLOY
 87 if %ERRORLEVEL% NEQ 0 (echo ^>^> DEPLOY ERROR! ^(%ERRORLEVEL%^)) else (echo DEPLOY OK.)
 88 goto :menu
 89 :noXAPDEPLOYCMD
 90 echo Warnning: XapDeployCmd.exe is not found!
 91 :startXAPDEPLOY
 92 echo Start XapDeploy.exe ...
 93 start "" /d "%folder%\Youku.Bin\Release" %XAPDEPLOY%
 94 ping -n 2 127.1>nul
 95 goto :menu
 96 :update
 97 echo Updating. Please wait.................
 98 if NOT EXIST %XAPDEPLOYCMD% goto noXAPDEPLOYCMD
 99 %XAPDEPLOYCMD% /update %XAPFILE% /targetdevice:de
100 if %ERRORLEVEL% EQU 5 goto :startXAPDEPLOY
101 if %ERRORLEVEL% NEQ 0 (echo ^>^> UPDATE ERROR! ^(%ERRORLEVEL%^)) else (echo UPDATE OK.)
102 goto :menu
103 :uninstall
104 echo Uninstall. Please wait.................
105 if NOT EXIST %XAPDEPLOYCMD% (echo Warnning: XapDeployCmd.exe is not found!&&goto :menu)
106 echo   ^* Product ID: %PRODUCTID%
107 %XAPDEPLOYCMD% /uninstall %PRODUCTID% /targetdevice:de
108 if %ERRORLEVEL% NEQ 0 (echo ^>^> Uninstall ERROR! ^(%ERRORLEVEL%^)) else (echo Uninstall OK.)
109 goto :menu
110 :isedir
111 echo Dir IsolatedStore. Please wait.................
112 echo   ^* Product ID: %PRODUCTID%
113 %ISETOOL% dir de %PRODUCTID%
114 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Dir isolated storage ERROR!) else (echo Dir isolated storage OK.)
115 goto :menu
116 :isets
117 echo Take snapshot. Please wait.................
118 echo   ^* Product ID: %PRODUCTID%
119 echo   ^* Desktop Path: %DESKTOPPATH%
120 %ISETOOL% ts de %PRODUCTID% "%folder%\%DESKTOPPATH%"
121 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Take snapshot ERROR!) else (echo Take snapshot OK.)
122 goto :menu
123 :isers
124 echo Restore snapshot. Please wait.................
125 echo   ^* Product ID: %PRODUCTID%
126 echo   ^* Desktop Path: %DESKTOPPATH%\IsolatedStore
127 %ISETOOL% rs de %PRODUCTID% "%folder%\%DESKTOPPATH%\IsolatedStore"
128 ::if %ERRORLEVEL% NEQ 0 (echo ^>^> Restore snapshot ERROR!) else (echo Restore snapshot OK.)
129 goto :menu
130 :phonereg
131 echo Start PhoneReg.exe ...
132 start "" %PHONEREG%
133 ping -n 2 127.1>nul
134 goto :menu
135 :openlogfile
136 if exist %msbuildlog% (start "" notepad %msbuildlog%) else (echo Logfile not found.) 
137 goto :menu
138 :edit
139 start "" notepad "%0"
140 :end
141 popd
142 exit
View Code

 

2.拷贝项目副本.bat

用于创建项目副本。比如开发新版本时,用ROBOCOPY在本地复制一份出来。

效果如图:

技术分享   技术分享

 

拷贝项目副本.bat

 1 @echo off
 2 echo ---------------------------------
 3 echo ROBOCOPY source-dir dest-dir /MIR
 4 echo ---------------------------------
 5 title ROBOCOPY source-dir dest-dir
 6 :setsource
 7 set /p source=source-dir:
 8 if "%source%"=="" goto :setsource
 9 if not exist %source% echo The source-dir doesn‘t exist. Please input again.&&goto :setsource
10 title ROBOCOPY %source% dest-dir
11 :setdestination
12 set /p destination=dest-dir:
13 if "%destination%"=="" goto :setdestination
14 if not exist %destination% goto :startrobocopy
15 :overwritequestion
16 set /p key=The dest-dir has existed. Do it?(Y/N):
17 if "%key%"=="" goto :overwritequestion
18 if "%key%"=="Y" goto :startrobocopy
19 if "%key%"=="y" goto :startrobocopy
20 goto :setdestination
21 :startrobocopy
22 title ROBOCOPY %source% %destination%
23 set XF=Thumbs.db
24 set XD=.svn myfiles
25 robocopy %source% %destination% /MIR /XF %XF% /XD %XD%
26 title ROBOCOPY %source% %destination% (Completed)
27 set /p key=Press ENTER to open folder...
28 explorer /select,"%destination%\BuildRelease.bat"

 

创建项目NOKIA包.bat

其中包含了文件名大写、Unicode代码替换功能,替换图像等文件按项目文件结构放在 wp8nokiaupdate 文件夹中。

技术分享
 1 @echo off
 2 echo ---------------------------
 3 echo Create Project-Nokia
 4 echo ---------------------------
 5 title Create Project-Nokia
 6 color 17
 7 :setsource
 8 set /p source=source-dir:
 9 if "%source%"=="" goto :setsource
10 if not exist %source% echo The source-dir doesn‘t exist. Please input again.&&goto :setsource
11 :setdestination
12 set "destination=%source:wp8_v=诺基亚wp8_v%"
13 for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set destination=%%destination:%%i=%%i%%
14 if "%destination%"=="" goto :setdestination
15 if not exist %destination% goto :startrobocopy
16 :overwritequestion
17 set /p key=The dest-dir has existed. Do it?(Y/N):
18 if "%key%"=="" goto :overwritequestion
19 if "%key%"=="Y" goto :startrobocopy
20 if "%key%"=="y" goto :startrobocopy
21 goto :setsource
22 :startrobocopy
23 color 2e
24 set XF=Thumbs.db
25 set XD=.svn myfiles
26 robocopy %source% %destination% /MIR /XF %XF% /XD %XD%
27 if not exist wp8nokiaupdate goto :editAppid
28 echo ^>^> Xcopying wp8nokiaupdate files...
29 xcopy wp8nokiaupdate %destination%\ /s /e /g /h /r /k /y
30 :editAppid
31 rem echo ^>^> Replace AppId, MarketPlaceAppId, IdleDetectionMode, Agree for Terms and Privacy...
32 echo ^>^> Replace AppId, MarketPlaceAppId...
33 set sourceappid=ad00404c17cb662e
34 set nokiaappid=515158cd5f9b803b
35 set sourcemarketplaceappid=cdfb7d0f-825e-40b4-b146-3853a0646994
36 set nokiamarketplaceappid=923aa42b-882c-4815-9c69-b74100cac3c9
37 set replacefile1=%destination%\Youku.Online\YoukuService\YoukuServicePartOne.cs
38 rem set replacefile2=%destination%\Youku\App.xaml.cs
39 rem set replacefile3=%destination%\Youku\Views\UserRegisterPageView.xaml
40 set tempvbs=%~n0_replace_appid.vbs
41 echo function ansi2utf8(strFile,s1,s2,newname) >%tempvbs%
42 echo Set ADOStrm = CreateObject("ADODB.Stream") >>%tempvbs%
43 echo ADOStrm.Type = 2 >>%tempvbs%
44 echo ADOStrm.Mode = 3 >>%tempvbs%
45 echo ADOStrm.CharSet = s1 >>%tempvbs%
46 echo ADOStrm.Open >>%tempvbs%
47 echo ADOStrm.LoadFromFile strFile >>%tempvbs%
48 echo s = ADOStrm.ReadText >>%tempvbs%
49 echo ADOStrm.Position = 0 >>%tempvbs%
50 echo ADOStrm.CharSet = s2 >>%tempvbs%
51 echo ADOStrm.WriteText s >>%tempvbs%
52 echo ADOStrm.SetEOS >>%tempvbs%
53 echo ADOStrm.SaveToFile newname, 2 >>%tempvbs%
54 echo ADOStrm.Close >>%tempvbs%
55 echo end function >>%tempvbs%
56 echo function strReplace(pFile,pStr,reStr) >>%tempvbs%
57 echo set fso=CreateObject("Scripting.FileSystemObject") >>%tempvbs%
58 echo set ws=CreateObject("wscript.shell") >>%tempvbs%
59 echo filename=pFile >>%tempvbs%
60 echo ansi2utf8 filename,"utf-8","gbk","temp.tmp" >>%tempvbs%
61 echo set fr=fso.opentextfile("temp.tmp",1,-1) >>%tempvbs%
62 echo set fw=fso.createtextfile("temp2.tmp",2) >>%tempvbs%
63 echo Set regEx = New RegExp >>%tempvbs%
64 echo do >>%tempvbs%
65 echo data=fr.readline >>%tempvbs%
66 echo regEx.Pattern = pStr >>%tempvbs%
67 echo data = regEx.Replace(data, reStr) >>%tempvbs%
68 echo fw.writeline data >>%tempvbs%
69 echo loop until fr.atendofstream >>%tempvbs%
70 echo fw.close:fr.close >>%tempvbs%
71 echo ansi2utf8 "temp2.tmp","gbk","utf-8",filename >>%tempvbs%
72 echo fso.deletefile "temp.tmp",true >>%tempvbs%
73 echo fso.deletefile "temp2.tmp",true >>%tempvbs%
74 echo end function >>%tempvbs%
75 echo strReplace "%replacefile1%","""%sourceappid%""","""%nokiaappid%""" >>%tempvbs%
76 echo strReplace "%replacefile1%","""%sourcemarketplaceappid%""","""%nokiamarketplaceappid%""" >>%tempvbs%
77 rem echo strReplace "%replacefile2%","PhoneApplicationService.Current.UserIdleDetectionMode","//PhoneApplicationService.Current.UserIdleDetectionMode" >>%tempvbs%
78 rem echo strReplace "%replacefile2%","PhoneApplicationService.Current.ApplicationIdleDetectionMode","//PhoneApplicationService.Current.ApplicationIdleDetectionMode" >>%tempvbs%
79 rem echo strReplace "%replacefile3%","Name=""acceptConventionCheckBox""  IsChecked=""True""","Name=""acceptConventionCheckBox""  IsChecked=""False""" >>%tempvbs%
80 wscript %tempvbs%
81 ping 127.1 -n 2 >nul
82 del %tempvbs% /q>nul
83 find /n /i "%nokiaappid%" %replacefile1%
84 find /n /i "%nokiamarketplaceappid%" %replacefile1%
85 if %ERRORLEVEL% NEQ 0 (echo ^>^> Replace AppId ERROR!) else (echo Replace AppId OK.)
86 :completed
87 echo Completed.
88 title Create Project-Nokia (Completed)
89 echo.
90 color 17
91 set /p key=Press ENTER to open folder...
92 explorer /select,"%destination%\BuildRelease.bat"
View Code

 

3.制作备份.bat

利用7za.exe根据当前的时间进行源代码备份,可自动生成 exclude.txt 文件,去除源码中不需要备份的部分,也可以对它手动编辑。

需要下载7z的独立命令行工具7za.exe

效果如下:

技术分享

制作备份.bat

 1 @echo off
 2 rem 说明:
 3 rem slnDir   [必选] 将压缩的文件夹名称
 4 rem slnFile  [可选] 将sln文件名(不含扩展名)设置在“slnFile=”右边
 5 rem password [可选] 打包时使用的密码
 6 ::call 制作备份.bat -noUplayer
 7 ::call 制作备份.bat -onlyUplayer
 8 set slnDir=wp8_v3.7
 9 set slnFile=
10 set password=Bob13013
11 set output="%slnDir%.%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.Src.7z"
12 if "%slnFile%"=="" set slnFile=%slnDir%
13 set exe7z=7za.exe
14 set excludeFile=exclude.txt
15 title 制作备份
16 ::参数
17 if "%1"=="-noUplayer" goto :noUplayer
18 if "%1"=="-onlyUplayer" goto :onlyUplayer
19 goto :start
20 :noUplayer
21 title 制作备份 - NO UPLAYER FOLDER
22 set excludeFile=exclude_noUplayer.txt
23 set output="%slnDir%.nouplayer.%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.Src.7z"
24 goto :start
25 :onlyUplayer
26 title 制作备份 - ONLY UPLAYER FOLDER
27 set output="%slnDir%.UPlayer.%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.Src.7z"
28 set slnDir="%slnDir%\UPlayer"
29 goto :start
30 :start
31 cls
32 if "%slnDir%"=="" goto :ERR1
33 if not exist %slnDir% goto :ERR1
34 if not exist %exe7z% goto :ERR2
35 if exist %excludeFile% goto :COMPRESS
36 ::生成excludeFile
37 echo .svn\>%excludeFile%
38 echo bin\>>%excludeFile%
39 echo obj\>>%excludeFile%
40 echo PerformanceLogs\>>%excludeFile%
41 echo PerfLogs\>>%excludeFile%
42 echo myfiles\>>%excludeFile%
43 echo packages\>>%excludeFile%
44 echo ipch\>>%excludeFile%
45 echo *.sdf>>%excludeFile%
46 echo Youku.suo>>%excludeFile%
47 echo Youku.v11.suo>>%excludeFile%
48 echo Youku.v12.suo>>%excludeFile%
49 echo Youku.sln.DotSettings.user>>%excludeFile%
50 echo lastmsbuild.log>>%excludeFile%
51 echo Youku_*.sap>>%excludeFile%
52 echo Youku.sdf>>%excludeFile%
53 echo Thumbs.db>>%excludeFile%
54 echo Youku_Debug_AnyCPU.xap>>%excludeFile%
55 echo Youku_Release_AnyCPU.xap>>%excludeFile%
56 if "%1"=="-noUplayer" echo UPlayer\>>%excludeFile%
57 :COMPRESS
58 title 正在备份:%output%
59 if exist %output% del %output% /F /Q
60 if "%password%"=="" (set pwd=) else (set pwd=-p%password%)
61 %exe7z% a -t7z -mx=9 %output% "%slnDir%\" -xr@%excludeFile% -scsWIN %pwd%
62 echo 输出文件:%output%
63 title 备份完成:%output%
64 set /p key=按回车键退出...
65 goto :END
66 :ERR1
67 title 错误 - 制作备份
68 color 0E
69 echo 错误:源文件夹:“%slnDir%” 不存在!
70 echo.
71 echo 请修改slnDir变量,保存后重试。
72 echo.
73 echo 按任意键开始编辑...
74 pause>nul
75 start "" %windir%\notepad.exe "%~0"
76 goto :END
77 :ERR2
78 title 错误 - 制作备份
79 color 0E
80 echo 错误:压缩软件:“%exe7z%”不存在!
81 echo.
82 echo 请检查7z压缩软件,或者编辑批处理修改exe7z变量。
83 echo.
84 echo 按任意键退出...
85 pause>nul
86 goto :END
87 :END
88 exit

 

由于某些比较大的项目更新没有WP源码的更新频繁,每次备份较大的项目需要花费的时间较长,所以对上面的代码中Uplayer是分离出来的。

如图:

技术分享

 

制作备份_菜单.bat

他会创建 exclude_noUplayer.txt 文件,可手动编辑排除的文件。

 1 @echo off
 2 echo ====== 制作备份 ======
 3 echo 1. noUplayer
 4 echo 2. onlyUplayer
 5 echo 3. 全部(onlyUplayer和onlyUplayer)
 6 echo 4. 全部
 7 echo.
 8 set /p key=请选择:
 9 if "%key%"=="1" call 制作备份.bat -noUplayer
10 if "%key%"=="2" call 制作备份.bat -onlyUplayer
11 if "%key%"=="3" start call 制作备份.bat -noUplayer && call 制作备份.bat -onlyUplayer
12 if "%key%"=="4" call 制作备份.bat

 

开发过程中编写的一些批处理

标签:

原文地址:http://www.cnblogs.com/Bob-wei/p/4489412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!