簡體   English   中英

如何在 Windows 中使用 xcopy 復制目錄結構

[英]How to replicate a directory structure using xcopy in windows

我有一個包含文件夾列表的文本文件。我的文本文件如下所示:

"D:\old\FOLDER1"  
"D:\old\FOLDER2"  
"D:\old\FOLDER3"  
"D:\old\FOLDER4"  
"D:\old\FOLDER5"

所有這些文件夾下都有子文件夾和文件

我想要做的是使用 xcopy 復制FOLDER1FOLDER2FOLDER3 FOLDER4FOLDER5復制文件夾,復制這些文件夾的結構,因此在輸出中,我想得到

D:\output\bkup\FOLDER1\............Including all subfolders and files D:\output\bkup\FOLDER2\............Including all subfolders and files D:\output\bkup\FOLDER3\.......... Including all subfolders and files 
D:\output\bkup\FOLDER4\............Including all subfolders and files 
D:\output\bkup\FOLDER5\............ Including all subfolders and files

我寫了下面的腳本,它適用於一個文件夾

set sourceFolder="D:\old\FOLDER5"
set destinationFolder=%sourceFolder:~7,-1%
echo %destinationFolder%
xcopy /s /e /i /h /r /y %sourceFolder%  "D:\output\bkup%destinationFolder%"

但是由於要復制的目錄數量為 100+,我喜歡使用 for 循環或將目錄列表傳遞到文本文件中,這就是我不知道如何處理的。

請幫助我,我不是批處理文件編寫方面的專家。

您可以使用 for /f 逐行讀取(如果需要解析)文本文件。 使用“delims=”來閱讀整行。 不要忘記添加引號以防止有多個參數並在子過程中去掉引號

for /f "delims=" %%a in (yourtextfile.txt) do call :docopy "%%a"
goto :eof

:docopy
set sourceFolder=%~1
set destinationFolder=%sourceFolder:~7,-1%
echo %destinationFolder%
xcopy /s /e /i /h /r /y %sourceFolder%  "D:\output\bkup%destinationFolder%" 
goto :eof

嘗試robocopy ,它更適合您的需求,適用於 XP Prof. 或更新版本:

set "sourceFolder=D:\old\FOLDER5"
set "destinationFolder=%sourceFolder:~7,-1%"
robocopy "%sourceFolder%" "%destinationFolder%" /MIR

這會在“%destinationFolder%”處生成一個完整的 MIRror。

如果要使用xcopy從文本文件復制文件夾,請使用以下代碼:

set "sourceFolder=D:\old\FOLDER5"
set "destinationFolder=%sourceFolder:~7,-1%"
for /f "usebackqdelims=" %%i in ("My File With Source Folders.txt") do xcopy /seihry "%%i" "D:\output\bkup%destinationFolder%"

帶有源文件夾的文本文件是"My File With Source Folders.txt"

從這個Microsoft 論壇帖子中獲取解決方案:

復制另一個文件夾結構而不復制文件。

這里“ProjectsX”文件夾被替換為“ProjectsY”——在SVN目錄中

/E - 包括空目錄

/XF * - 排除所有文件

/XD ".svn" "obj" - 排除指定目錄

D:\SVN>robocopy ProjectsX ProjectsY /E /XF * /XD ".svn" "obj"

感謝Endoro上一個答案中robocopy的提示。 但是你真的不需要鏡像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM