• slider image 101
  • slider image 149
:::

Windows 分享區

利用微軟的XCOPY指令備份 

discuss pic 2016-01-30 04:49:07
xcopy 來源 目的 /e/d/e/y/c/i/h
e 包含子目錄
d  複製比目的地還新的檔案
y  不詢問是否直接回答YES
c 錯誤也繼續
i  目錄不存在就建立資料夾
h 隱藏檔也複製
xcopy c:\ d:\/e/d/e/y/c/i
discuss pic 2016-08-18 17:14:34
來源出處 http://www.blueshop.com.tw/board/FUM2 ... BRD20081204234903GE4.html
1.批次檔內主要始使用DOS指令〝XCOPY〞來動作
搭配一些參數:
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期, 
只複製那些來源檔案日期比目的檔案日期為新的檔案。 
/H:時複製隱藏檔和系統檔。 
/K:複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/O:複製檔案所有權及 ACL 資訊。
/E:複製每個目錄及其包含的子目錄,也複製空目錄。
/Y:不要提示您確認是否要覆蓋一個已經存在的檔案。

2.再加上一些處理ERROR簡易判斷的迴圈
3.將來源有變動過的檔案複製結果寫入TXT檔以備查(因考量硬碟容量之負載,所以只會保留當日LOG)
4.再來搭配的WIN2K的自動排程功能設定於時間到 自動執行此BAT,
5.執行完成後皆會在D:\Backup_log\留下當日的LOG檔即可得知當天備份 情形及是否有異動過的檔案

@ECHO OFF
del D:\Backup_log\2200_check.txt
@ECHO %date% %TIME:~0,5%資料備份紀錄檔 > D:\Backup_log\2200_check.txt
@ECHO 2200備份正在執行中,請稍後.....
XCOPY \\Wslt0140\d$\文件\*.* \\Wslt0141\d$\文件\ /D /H /K /O /E /Y >> D:\Backup_log\2200_check.txt
IF ERRORLEVEL 5 GOTO EXIT3
IF ERRORLEVEL 4 GOTO EXIT4
IF ERRORLEVEL 2 GOTO EXIT2
IF ERRORLEVEL 1 GOTO EXIT1
IF ERRORLEVEL 0 GOTO EXIT0
@ECHO OFF
:EXIT4
echo 發生初始化錯誤。記憶體或磁碟空間不足,或在命令列輸入的是不正確的磁碟機名稱或語法
goto END

:EXIT3
echo 發生磁碟寫入錯誤
goto END

:EXIT2
echo 使用者按 CTRL+C 鍵以終止 xcopy
goto END

:EXIT1
echo 找不到要複製的檔案
goto END

:EXIT0
echo 成功備份
goto END

:END
@echo on

@ECHO ***************************
@ECHO * 若有成功備份訊息則備份OK*
@ECHO * 否則請手動作業 *
@ECHO * *
@ECHO * *
@ECHO * 謝謝!! *
@ECHO ***************************
pause
**************************************************************************
C:\>xcopy /?
複製檔案和樹狀目錄。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\r\n
[/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 顯示要複製的檔案。
/H 時複製隱藏檔和系統檔。
/R 覆蓋唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋一個已經存在的檔案。
/-Y 示您確認是否要覆蓋一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。

參數 /Y 可以在 COPYCMD 環境變數中預先設定。但可以在指令行中用 /-Y 參數
來覆蓋原有設定。

C:\>