windows多線程復(fù)制文件

2022-05-29發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

建議如果你要拷貝包含多個(gè)大容量文件的目錄,那就需要使用 RoboCopy 命令了,它是一個(gè)命令行的目錄復(fù)制命令,自從 Windows NT 4.0 開始就成為 windows 資源工具包的一部分,然后在 Windows Vista、Windows 7 和 Windows Server 2008 采用作為標(biāo)準(zhǔn)的功能內(nèi)置,這個(gè)工具不僅復(fù)制速度非???,而且支持?jǐn)帱c(diǎn)續(xù)傳,甚至可以支持在制定的時(shí)間定時(shí)進(jìn)行拷貝。Windows 7 中的此項(xiàng)功能也得到升級(jí)?D?D已經(jīng)可以支持多線程了,這就意味著可以大大提升復(fù)制速度。而且該功能可以創(chuàng)建兩個(gè)文件結(jié)構(gòu)完全的鏡像副本而不復(fù)制任何不需要的重復(fù)文件,同時(shí)還允許您保留所有相關(guān)文件信息,包括日期和時(shí)間戳、安全訪問控制列表(ACL))等等。對(duì)那種N多小文件目錄的復(fù)制能把速度提高一個(gè)數(shù)量級(jí) ,幾千個(gè)文件3秒就復(fù)制完了,而常用的復(fù)制粘貼方式大概需要45秒。

  例如要把光盤F://里的所有文件拷貝到E盤的//CD目錄下,可以運(yùn)行以下命令:

  1. 01RoboCopy /s F:// E://CD

復(fù)制代碼:

  即使此時(shí)突然取出光盤,也無妨,RoboCopy 會(huì)一直等待,直到把光盤重新放入光驅(qū)又會(huì)自動(dòng)開始拷貝。

  RoboCopy 還支持局域網(wǎng)拷貝,甚至可以把局域網(wǎng)服務(wù)器中指定目錄的目錄結(jié)構(gòu)全部搬到本地,RoboCopy 支持在定時(shí)操作,就可以把復(fù)制的操作放到晚上進(jìn)行,以免擁塞局域網(wǎng),給別人帶來不便。

  下面先看看這條命令的用法,如下圖所示:

 

image.png

  如:

  1. 01RoboCopy dir_from dir_to /E /MT:50 /LOG:copy.log

復(fù)制代碼

  其中/E表示包含子目錄,/MT:50是用50個(gè)線程(默認(rèn)8個(gè)線程,最大可設(shè)128個(gè)),/LOG是重定向輸出。更多選項(xiàng)可以用RoboCopy /?查看。

  命令語法:

  1. 01RoboCopy source destination [file [file]...] [options]

復(fù)制代碼

  源:源目錄(驅(qū)動(dòng)器://路徑或////服務(wù)器//共享//路徑)

  目標(biāo):目標(biāo)目錄(驅(qū)動(dòng)器://路徑 或 ////服務(wù)器//共享//路徑)

  文件:要復(fù)制的文件(名稱/通配符: 默認(rèn)為 "*.*")

  為了測(cè)試復(fù)制文件的速度,做了如下的測(cè)試

 

image.png

  能夠從上圖中看到在120個(gè)線程的情況下,復(fù)制大小為878.16MB的單個(gè)文件,從14:56:31開始,14:57:06結(jié)束,共用了35秒得時(shí)間。

  建議為了能夠測(cè)試在選取多少線程數(shù)可以更快速的拷貝文件,采用PowerShell腳本進(jìn)行批處理逐個(gè)測(cè)試不同線程的情況下復(fù)制所需要的時(shí)間與線程的對(duì)應(yīng)關(guān)系,并將其在坐標(biāo)上描點(diǎn)作圖,測(cè)試的PowerShell腳本如下:

  1. 01for(=128; ?Clt 129;++){

  2. 02RoboCopy /s C://CD C://test//CD /MT: /LOG:log/copy.log

  3. 03remove-item C:////test//CD//*.*

  4. 04" ," >>log/answ.txt

  5. 05(Get-Content C://log//copy.log -TotalCount 6)[-1] >>log/answ.txt

  6. 06"," >>log/answ.txt

  7. 07(Get-Content C://log//copy.log -TotalCount 10000)[-1] >>log/answ.txt}

復(fù)制代碼

  將腳本輸出的內(nèi)容經(jīng)過格式規(guī)整,通過CSV格式導(dǎo)入到Excel中,并作出折線圖如下圖中所示的"系列1"線條:

 

image.png

  拷貝的目標(biāo)目錄中共有324個(gè)文件,單個(gè)文件大小介于1MB與2MB之間,總文件大小549MB,與上面大小為878.16MB的單個(gè)文件相比,拷貝的時(shí)間要比之前要長(zhǎng),因?yàn)槲募?shù)眾多,需要逐個(gè)進(jìn)行拷貝花費(fèi)了比較長(zhǎng)的時(shí)間,而且經(jīng)過多次試驗(yàn)實(shí)驗(yàn)當(dāng)中是會(huì)有誤差的,歸一化后如圖中黃色的"線性(系列1)"線條所示,能夠看到同樣的文件組在使用不同的線程時(shí)拷貝速度是有差異的,隨著線程數(shù)的增多,拷貝的時(shí)間呈線性的減少。

  其實(shí) RoboCopy 還有很多強(qiáng)大的使用方法,讀者可以使用 RoboCopy /? 命令進(jìn)行查詢,或者從本文末尾的附件中查看 RoboCopy 命令的詳細(xì)選項(xiàng),從中讀者將會(huì)發(fā)現(xiàn)這條命令更強(qiáng)大的功能選項(xiàng)。


  附:RoboCopy 命令的詳細(xì)選項(xiàng)

  復(fù)制選項(xiàng):

  /S:復(fù)制子目錄,但不復(fù)制空的子目錄。

  /E:復(fù)制子目錄,包括空的子目錄。

  /LEV:n:僅復(fù)制源目錄樹的前 n 層。

  /Z:在可重新啟動(dòng)模式下復(fù)制文件。

  /B:在備份模式下復(fù)制文件。

  /ZB:使用可重新啟動(dòng)模式;如果拒絕訪問,請(qǐng)使用備份模式。

  /EFSRAW:在 EFS RAW 模式下復(fù)制所有加密的文件。

  /COPY:復(fù)制標(biāo)記:要復(fù)制的文件內(nèi)容(默認(rèn)為 /COPY:DAT)。(復(fù)制標(biāo)記: D=數(shù)據(jù),A=屬性,T=時(shí)間戳)。(S=安全=NTFS ACL,O=所有者信息,U=審核信息)。

  /DCOPY:T:復(fù)制目錄時(shí)間戳。

  /SEC:復(fù)制具有安全性的文件(等同于 /COPY:DATS)。

  /COPYALL:復(fù)制所有文件信息(等同于 /COPY:DATSOU)。

  /NOCOPY:不復(fù)制任何文件信息(與 /PURGE 一起使用生效)。

  /SECFIX:修復(fù)所有文件的文件安全性,即使是跳過的文件。

  /TIMFIX:修復(fù)所有文件的文件時(shí)間,即使是跳過的文件。

  /PURGE:刪除源中不再存在的目標(biāo)文件/目錄。

  /MIR:鏡像目錄樹(等同于 /E 和 /PURGE)。

  /MOV:移動(dòng)文件(復(fù)制后從源中刪除)。

  /MOVE:移動(dòng)文件和目錄(復(fù)制后從源中刪除)。

  /A+:[RASHCNET]:將給定的屬性添加到復(fù)制文件。

  /A-:[RASHCNET]:從復(fù)制文件中刪除給定的屬性。

  /CREATE:僅創(chuàng)建目錄樹和長(zhǎng)度為零的文件。

  /FAT:僅使用 8.3 FAT 文件名創(chuàng)建目標(biāo)文件。

  /256:關(guān)閉超長(zhǎng)路徑(> 256 字符)支持。

  /MON:n:監(jiān)視源;發(fā)現(xiàn)多于 n 個(gè)更改時(shí)再次運(yùn)行。

  /MOT:m:監(jiān)視源;如果更改,在 m 分鐘時(shí)間內(nèi)再次運(yùn)行。

  /RH:hhmm-hhmm:運(yùn)行小時(shí)數(shù) - 可以啟動(dòng)新副本的時(shí)間。

  /PF:以每個(gè)文件(而不是每個(gè)步驟)為基礎(chǔ)檢查運(yùn)行小時(shí)數(shù)。

  /IPG:n:程序包間的間距(ms),以釋放低速線路上的帶寬。

  /SL:對(duì)照目標(biāo)復(fù)制符號(hào)鏈接。

  /MT[:n]:使用 n 個(gè)線程進(jìn)行多線程復(fù)制(默認(rèn)值為 8)。n 必須至少為 1,但不得大于 128。該選項(xiàng)與 /IPG 和 /EFSRAW 選項(xiàng)不兼容。使用 /LOG 選項(xiàng)重定向輸出以便獲得最佳性能。

  文件選擇選項(xiàng):

  /A:僅復(fù)制具有存檔屬性集的文件。

  /M:僅復(fù)制具有存檔屬性的文件并重置存檔屬性。

  /IA:[RASHCNETO]:僅包含具有任意給定屬性集的文件。

  /XA:[RASHCNETO]:排除具有任意給定屬性集的文件。

  /XF 文件[文件]...:排除與給定名稱/路徑/通配符匹配的文件。

  /XD 目錄[目錄]...:排除與給定名稱/路徑匹配的目錄。

  /XC:排除已更改的文件。

  /XN:排除較新的文件。

  /XO:排除較舊的文件。

  /XX:排除多余的文件和目錄。

  /XL:排除孤立的文件和目錄。

  /IS:包含相同文件。

  /IT:包含已調(diào)整的文件。

  /MAX:n:最大的文件大小 - 排除大于 n 字節(jié)的文件。

  /MIN:n:最小的文件大小 - 排除小于 n 字節(jié)的文件。

  /MAXAGE:n:最長(zhǎng)的文件存在時(shí)間 - 排除早于 n 天/日期的文件。

  /MINAGE:n:最短的文件存在時(shí)間 - 排除晚于 n 天/日期的文件。

  /MAXLAD:n:最大的最后訪問日期 - 排除自 n 以來未使用的文件。

  /MINLAD:n:最小的最后訪問日期 - 排除自 n 以來使用的文件。(If n 《1900 then n = n days, else n = YYYYMMDD date)。

  /XJ:排除接合點(diǎn)。(默認(rèn)情況下通常包括)。

  /FFT:假設(shè) FAT 文件時(shí)間(2 秒粒度)。

  /DST:彌補(bǔ) 1 小時(shí)的 DST 時(shí)間差。

  /XJD:排除目錄的接合點(diǎn)。

  /XJF:排除文件的接合點(diǎn)。

  重試選項(xiàng):

  /R:n:失敗副本的重試次數(shù): 默認(rèn)為 1 百萬。

  /W:n:兩次重試間的等待時(shí)間: 默認(rèn)為 30 秒。

  /REG:將注冊(cè)表中的 /R:n 和 /W:n 保存為默認(rèn)設(shè)置。

  /TBD:等待定義共享名稱(重試錯(cuò)誤 67)。

  日志記錄選項(xiàng):

  /L:僅列出 - 不復(fù)制、添加時(shí)間戳或刪除任何文件。

  /X:報(bào)告所有多余的文件,而不只是選中的文件。

  /V:生成詳細(xì)輸出,同時(shí)顯示跳過的文件。

  /TS:在輸出中包含源文件的時(shí)間戳。

  /FP:在輸出中包含文件的完整路徑名稱。

  /BYTES:以字節(jié)打印大小。

  /NS:無大小 - 不記錄文件大小。

  /NC:無類別 - 不記錄文件類別。

  /NFL:無文件列表 - 不記錄文件名。

  /NDL:無目錄列表 - 不記錄目錄名稱。

  /NP:無進(jìn)度 - 不顯示已復(fù)制的百分比。

  /ETA:顯示復(fù)制文件的預(yù)期到達(dá)時(shí)間。

  /LOG:文件:將狀態(tài)輸出到日志文件(覆蓋現(xiàn)有日志)。

  /LOG+:文件:將狀態(tài)輸出到日志文件(附加到現(xiàn)有日志中)。

  /UNILOG:文件:以 UNICODE 方式將狀態(tài)輸出到日志文件(覆蓋現(xiàn)有日志)。

  /UNILOG+:文件:以 UNICODE 方式將狀態(tài)輸出到日志文件(附加到現(xiàn)有日志中)。

  /TEE:輸出到控制臺(tái)窗口和日志文件。

  /NJS:沒有作業(yè)摘要。

  /UNICODE:以 UNICODE 方式輸出狀態(tài)。

  作業(yè)選項(xiàng):

  /JOB:作業(yè)名稱:從命名的作業(yè)文件中提取參數(shù)。

  /SAVE:作業(yè)名稱:將參數(shù)保存到命名的作業(yè)文件。

  /QUIT:處理命令行后退出(以查看參數(shù))。

  /NOSD:未指定源目錄。

  /NODD:未指定目標(biāo)目錄。

  /IF:包含以下文件。

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線投稿、無法下載等問題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部