[windows] xcopy 備份至 「網路磁碟機」

 實作:

來源: D:\develop ;目標: Z:\develop ;檔案數:42966

1.新增網路磁碟機,作法請參考這篇「檔案歷程記錄 備份至 網路磁碟機」的步驟1至步驟3

2.cmd執行xcopy ,或是將指令轉為「批次檔 .bat」執行

我依我這邊的需求,組成我需要的指令:

xcopy官方文件

(1)cmd:

XCOPY D:\develop Z:\develop /D/K/E/Y/C/I/J

(2).bat:

「批次檔,這邊我想每次執行時可以寫一個用時間為檔名的LOG,指令如下。

set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
set filename=%today%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
set sourcePath=D:\
set targetPath=Z:\

echo **************************>>D:\xcopyLog\%filename%
echo start Time:%date:~0,4%-%date:~5,2%-%date:~8,2% %time%>>D:\xcopyLog\%filename%
echo sourcePath:%sourcePath%>>D:\xcopyLog\%filename%
echo targetPath:%targetPath%>>D:\xcopyLog\%filename%
echo **************************>>D:\xcopyLog\%filename%
XCOPY %sourcePath%develop %targetPath%develop /D/K/E/Y/C/I/J>>D:\xcopyLog\%filename%
echo End Time:%date:~0,4%-%date:~5,2%-%date:~8,2% %time%>>D:\xcopyLog\%filename%
echo **************************>>D:\xcopyLog\%filename%

ps:
/D只複製比目的檔還新的檔案
 /K複製後檔案屬性不變, /E包含子目錄
 /Y不要求確認
 /C錯誤發生也繼續
 /I目的不存在就建立資料夾
/H複製隱藏檔和系統檔
 /J 使用無緩衝的 I/O 複製,建議使用於非常大的檔案

3.執行結果與Log





ps:這邊我有用log紀錄下開始與結束時間,這樣計算下來42966個檔案,總共花了2.17個小時左右...感覺不是很理想,這些檔案才8.4G而已,之後我又做了幾個測試。
(1) 單1zip檔 4GB左右 -約1分鐘左右完成
(2)第一次執行,多個檔案(42966個.大小約8.4GB) -約2.17小時
(3)第二次執行 (同2的模式,因為第一次執行大部分都複製過了所以比較快)-約22分鐘
*目前感覺檔案大小不是影響速度的主因,主要可能是檔案數量,與網路頻寬導致的瓶頸。

Issues:

(1)無效路徑,0檔案已複製:
這個坑我在windows10測試沒有遇到,可以到windows server 2019 上測試就遇到了,爬了一下文,就是要把「來源路徑」的最後一個反斜線拿掉,我拿掉之後就真的好了...之後可能再研究一下是什麼原因。
XCOPY D:\develop\ Z:\develop /D/K/E/Y/C/I/J
改為
XCOPY D:\develop Z:\develop /D/K/E/Y/C/I/J

留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題