小弟需要從網路上的芳鄰裡海量的資料夾中找到我要的資料夾並將檔案co到我指定的目錄下,
前人都是用windows資料夾搜尋找,但因為公務機老舊搜尋很久,甚至有時候會跑半小時還找不到
所以想說用批次檔試看看會不會比較好,而且還省下我手動搬檔案的動作
以下是小弟的batch code,但因為資料量太多,測試後發現耗時太久
-----------------start---------------
@echo off
pushd \\server route
for /f %%i in ('dir D123* /ad /b /s') do (
xcopy %%i C:\test /s /d /y)
popd
pause
------------------------end----------------
請問我該怎麼解決這個效率上的問題阿,還是有能解決這問題的工具已經存在了呢?
還請各位先進不吝指導^^
1.要找的檔案是每次都不同嗎?
是-->問題2
否-->如果檔案室細碎的小型檔案,建議先在主機上,打包成一個檔案再傳出來會比較快(透過一些程式遠端遙控主機去打包你要的檔案)
2.要找的檔案會是近期才新增出來的檔案嗎?
否-->可以用dir/s > dir.txt建立完整的檔案清單, 這樣就可以不用慢慢地從網芳搜尋,然後找到要的檔案在批次拷貝出來
是-->如果是NTFS檔案系統可以考慮安裝Everything這套軟體,這套軟體是NTFS下搜尋檔案的強力助手,程式啟動後,搜尋任何NTFS檔案名稱都能在一秒內精確找完,且提供遠端操控並且下載檔案的功能
3.額外問題: 每次拷貝出的檔案數量大約多少? 檔案平均大小? 總檔案大小多少?
麻煩您先回答這幾個問題後, 我們大家才能有比較精確的方向討論最佳做法。
你是要複製整個目錄底下的檔案
而不是找到少數特定的檔案
這種 full copy 的做法
再快的硬碟也沒辦法快
你可以考慮使用備份的軟體
第一次設定所有的目錄─「完整備份」
第二次以後就進行「差異備份」
心血來潮時就「完整備份」
如此可能會較有效率
海綿大提到備份,我想到Robocopy,不知道會不會比批次檔速度快。
http://technet.microsoft.com/zh-tw/magazine/2006.11.utilityspotlight.aspx
http://www.wretch.cc/blog/dsa7410/9334589
海棉大好,其實我不是要做備份,我是要在一堆資料夾中,找到某個資料夾並將該資料夾copy出來,
不是routine job,是on demand job
是因為資料夾太多每次要搜尋耗時太久,職員才請我支援解決方案