2012-02-09 87 views
4

我需要將多個目錄從一個位置複製到另一個位置。所以,將會有多個xcopy報表,一個接一個。使用xcopy的並行副本

每個文件夾中的文件數很大。有什麼方法可以並行運行這些xcopy語句?我能想到的一個選擇是,在一個單獨的批處理文件中調用每個xcopy,然後使用@start而不是@call來調用這些批處理文件。

有沒有其他的選擇?

回答

6

您可以直接啓動xcopy,如start xcopy [parameters]。這使您可以並行運行多個xcopy實例。

順便說一句:你有沒有試過robocopy?它包含在所有最近的Windows版本中,並提供比xcopy更多的選項(有時候是性能)。

但通常情況下,並行複製多個目錄速度較慢(至少從驅動器複製到另一個驅動器時),因爲它會強制源驅動器在並行複製作業之間尋找而不是順序讀取文件。

+0

我還沒有嘗試過使用Robocopy。它使用'/ MT [:number]'對嗎?實際上,我需要在Windows XP SP3上執行此操作,因此需要明確獲取Robocopy。但是,我沒有完全理解它的'/ MT'的用法。你能否詳細說明一下? – 2012-02-09 17:46:14

+2

默認情況下,robocopy已經使用8個線程並行執行一些操作。這意味着您可以使用robocopy並行複製目錄中的所有文件。例如,如果您指定了'/ MT:100',則robocopy會並行複製多達100個文件。我不會推薦這樣做 - 8是很多。所以如果你確實選擇了robocopy而不是xcopy,只需按順序調用它。它會並行複製第一個目錄,然後複製第二個目錄等等。 – Simon 2012-02-09 20:38:30

+0

可以確認Simon的評論。我使用'/ MT:%NUMBER_OF_PROCESSORS%'與'/ MT:100'構建了一個龐大的遠程目錄中的ROBOCOPY,其中後者的平均運行速度快於**四核i5- 6500。我希望很久以前就知道這種靈活性水平! – 2017-03-31 19:55:22