最近在部署伺服器的時候,需要用到把一個站點檔案拷貝到其他站點。一個一個手動copy太累人了,寫了個簡單的批處理檔案,基本能達到目的,具體怎麼做呢:
1、把需要拷貝到各個站點的檔案,單獨放到一個目錄下。比如E:\WebSite\orig\
2、使用dos的xcopy指令,把源檔案orig拷貝到各個目的檔案,腳本如下:
xcopy E:\WebSite\orig\*.* D:\WebSite\Site1\ /S /F /R /Y /E
xcopy E:\WebSite\orig\*.* D:\WebSite\Site2\ /S /F /R /Y /E
xcopy E:\WebSite\orig\*.* D:\WebSite\Site3\ /S /F /R /Y /E
3、把上面的代碼儲存為copy.bat 即可。每次釋出的時候,把需要複制的檔案先釋出到E:\WebSite\orig\目錄下,然後輕按兩下運作該copy.bat批處理檔案。
xcopy的詳細用法,可以在cmd視窗,通過輸入help xcop 來檢視。我的機器上,顯示用法如下:
C:\Documents and Settings\administrator>help xcopy
複制檔案和目錄樹。
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要複制的檔案。
destination 指定新檔案的位置和/或名稱。
/A 隻複制有存檔屬性集的檔案,
但不改變屬性。
/M 隻複制有存檔屬性集的檔案,
并關閉存檔屬性。
/D:m-d-y 複制在指定日期或指定日期以後更改的檔案。
如果沒有提供日期,隻複制那些源時間
比目标時間新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定含有字元串的檔案清單。每一個字元串
必須在檔案的單獨行中。如果有任何
字元串與要被複制的檔案的絕對路徑
相符,那個檔案将不會得到複制。
例如,指定如 \obj\ 或 .obj 的字元串會排除
目錄 obj 下面的所有檔案或帶有
.obj 擴充名的檔案。
/P 建立每個目标檔案前提示。
/S 複制目錄和子目錄,除了空的。
/E 複制目錄和子目錄,包括空的。
與 /S /E 相同。可以用來修改 /T。
/V 驗證每個新檔案。
/W 提示您在複制前按鍵。
/C 即使有錯誤,也繼續複制。
/I 如果目标不存在,又在複制一個以上的檔案,
則假定目标一定是一個目錄。
/Q 複制時不顯示檔案名。
/F 複制時顯示完整的源和目标檔案名。
/L 顯示要複制的檔案。
/G 允許将沒有經過加密的檔案複制到
不支援加密的目标。
/H 也複制隐藏和系統檔案。
/R 覆寫隻讀檔案。
/T 建立目錄結構,但不複制檔案。
不包括空目錄或子目錄。/T /E 包括
空目錄和子目錄。
/U 隻複制已經存在于目标中的檔案。
/K 複制屬性。一般的 Xcopy 會重置隻讀屬性。
/N 用生成的短名複制。
/O 複制檔案所有權和 ACL 資訊。
/X 複制檔案稽核設定(隐含 /O)。
/Y 複制檔案稽核設定(隐含 /O)。
現存目标檔案。
/-Y 導緻提示以确認改寫一個
現存目标檔案。
/Z 用重新啟動模式複制網絡檔案。
指令行開關 /Y 可以預先在 COPYCMD 環境變量中設定。
這可能被指令行上的 /-Y 改寫。