[Windows] 部署相同目錄結構檔案的簡便方法

 我們在做程式開發時,為了測試方便一般都會在自己的工作電腦上建立系統運行的測試環境,例如系統運行的Web Server、Application Server或Database Server等,這樣便可以在自己電腦上做過測試,再把撰寫好的原始檔案複製到正式主機上。

我以Web-based的JSP程式來做說明:

本地端的Web應用程式目錄結構:

C:TomcatwebappsMyAppWEB-INFjspaccounting*.jsp

正式主機用網路磁碟機連線成 M:,則在正式主機上有同樣的目錄結構:

M:TomcatwebappsMyAppWEB-INFjspaccounting*.jsp

本地端電腦與主機端電腦擁有一模一樣的目錄結構,部署程式到主機的(簡化版的)步驟會是:

  1. 在本地端的開發環境撰寫、修改程式
  2. 啟動在本地端運行的全部Server程式 (Application Server+Database Server),開始測試(JSP就是利用瀏覽器來測試)
  3. 測試有問題便回到步驟1重新再來一次
  4. 累積正式程式到一定比例後,將可更新的程式複製到主機

我們今天要解決的是步驟4:將測試好的程式部署到正式環境的程序。在部署時我們遇到的前提是:

  • 不希望整個目錄更新,而希望只更新確實測試完成的程式;因為系統開發會是漸進式的,在更新某些程式時,同時也有別的程式正在開始撰寫或修改,因此若整個目錄更新的話勢必造成問題
  • 透過版本控制系統當然可以將部署程序做到更好的管制,但同時需要更嚴密的專案控管流程,小系統用之有時會有殺雞用牛刀的感覺(要看系統狀況而定),因此我們假設使用手動部署的方式來進行

為了簡化複製檔案的動作,同時用最簡單的方式來處理,因此撰寫了下列批次檔 dup.bat 來處理。

使用方法:dup  要複製的檔名  複製到那個磁碟機
使用範例:dup  index.jsp  M:   (把C:的index.jsp複製到M:同一目錄)
使用說明:dup.bat需要兩個參數:%1、%2

01 讓執行過程內容不顯示到螢幕
02, 03 若未輸入參數則跳至說明標籤處
04 把參數2指派給_TARGET變數,原因是環境變數的子字串操作無法套用到參數
05 取_TARGET變數(即目的磁碟機代號)的第2字元
06 若第2字元不是冒號,表示輸入錯誤,則跳到說明標籤處
07 用%CD%取出目前目錄,由磁碟機代號取,如C:WINDOWS取成 WINDOWS
11 將參數1的檔案複製到指定目錄

dup.bat 內容如下:

01 @echo off
02 if "%1" == "" goto USAGE
03 if "%2" == "" goto USAGE
04 set _TARGET=%2
05 set _TARGET=%_TARGET:~1,1%
06 if not "%_TARGET%" == ":" goto USAGE_DRIVE
07 set _CURR_DIR=%CD:~2%
08 echo copy %1 %2%_CURR_DIR%
09 del %2%_CURR_DIR%%1.bak > nul
10 copy %2%_CURR_DIR%%1 %2%_CURR_DIR%%1*.bak
11 copy %1 %2%_CURR_DIR%
12 goto END
13 :USAGE
14 echo 用法: %0 要複製的檔名 要複製到那個磁碟機(目錄結構相同)
15 echo 範例:%0 "c:windowsnotepad.exe" k:
16 goto END
17 :USAGE_DRIVE
18 echo 第2個參數必須為磁碟機代號(含冒號)
19 echo 範例:%0 "c:windowsnotepad.exe" k:
20 :END
21 %2
22 cd %2%_CURR_DIR%
23 dir %2%_CURR_DIR%%1


您可能也會有興趣的類似文章

填寫回應

 

 

 

您可使用這些HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

隨機文章

  1. InterBase原作者加入MySQL AB 
  2. 3個改造Windows 7工作列的免費工具 (1)
  3. [Blog] FireFox用來整合del.icio.us的擴充套件 
  4. Java-based Subversion client登入AD的帳號問題 
  5. [Tools] 軟體KVM (15)
  6. 推薦"十年自學程式設計"一文 
  7. Aqua Data Studio 3.7.23 更新 
  8. 網路衝浪新幫手-無所不在的Firefox Ubiquity (10)
  9. Device Doctor: 掃描並更新已安裝的驅動程式 (3)
  10. [Vista] 小試檔案總管的搜尋工具 

歷史熱門文章

  1. 如何手動輸入Plurk的表情圖示? (352,665 點擊/2008-09-29)
  2. 簡單放大Plurk輸入區的方法[修訂] (86,883 點擊/2008-09-29)
  3. 啟用&關閉中華電信ZyXEL P874的無線網路連線功能的步驟[修訂] (83,298 點擊/2011-06-01)
  4. Plurk CSS樣式自訂修改全攻略 (82,952 點擊/2009-07-04)
  5. 網路升級光世代50M/3M與設定ZyXEL P874 (52,918 點擊/2011-05-28)
  6. 輕鬆學會彈指神功-揭露AutoHotkey絕技 (42,994 點擊/2008-04-10)
  7. iPad新手入門技巧 (40,244 點擊/2011-02-05)
  8. 分享世博台灣館主題曲『台灣的心跳聲』MV(附歌詞+下載連結+新歌詞) (38,113 點擊/2010-04-27)
  9. 把HTC Touch HD操作介面換成Spb Mobile Shell,美觀又便利! (37,924 點擊/2009-02-18)
  10. 另一套適用手機的影片轉檔工具:WinAVI 3GP/MP4/PSP/iPod Video Converter (35,873 點擊/2009-04-18)