Robocopy - 排除大量目录

15

我在使用robocopy时遇到了问题。我想用它来备份系统盘,并排除一些系统文件夹。但是它仍然试图复制其中的一些文件夹。 我的批处理文件如下:

robocopy c:\ l:\C\ /r:1 /w:1 /mir /dcopy:T /xjd /xjf /xj /copy:DT /log+: l:\RobocopyLogC.txt /xf "desktop.ini" /xd "$Recycle.Bin" /xd Config.Msi /xd MSOCache/xd Recovery /xd "System Volume Information" /xd Windows /xd "Program Files\Common Files" /xd "Program Files\Internet Explorer" /xd "Program Files\Reference Assemblies" /xd "Program Files\Uninstall Information" /xd "Program Files\Microsoft Analysis Services" /xd "Program Files\Microsoft Mouse and Keyboard Center" /xd "Program Files\Microsoft Office" /xd "Program Files\Microsoft Silverlight" /xd "Program Files\MSBuild" /xd "Program Files\Windows Defender" /xd "Program Files\Windows Journal" /xd "Program Files\Windows Mail" /xd "Program Files\Windows Media Player" /xd "Program Files\Windows Multimedia Platform" /xd "Program Files\Windows NT" /xd "Program Files\Windows Photo Viewer" /xd "Program Files\Windows Portable Devices" /xd "Program Files\Windows Sidebar" /xd "Program Files\WindowsApps" /xd "Program Files\WindowsPowerShell" /xd "Program Files (x86)\Common Files" /xd "Program Files (x86)\InstallShield Installation Information" /xd "Program Files (x86)\Internet Explorer" /xd "Program Files (x86)\Microsoft Analysis Services" /xd "Program Files (x86)\Microsoft Office" /xd "Program Files (x86)\Microsoft Silverlight" /xd "Program Files (x86)\Microsoft.NET" /xd "Program Files (x86)\MSBuild" /xd "Program Files (x86)\Reference Assemblies" /xd "Program Files (x86)\Temp" /xd "Program Files (x86)\Windows Defender" /xd "Program Files (x86)\Windows Mail" /xd "Program Files (x86)\Windows Media Player" /xd "Program Files (x86)\Windows Multimedia Platform" /xd "Program Files (x86)\Windows NT" /xd "Program Files (x86)\Windows Photo Viewer" /xd "Program Files (x86)\Windows Portable Devices" /xd "Program Files (x86)\WindowsPowerShell" /xd "Program Files (x86)\Windows Sidebar" /xd ProgramData\Microsoft /xd "ProgramData\Microsoft Help" /xd "ProgramData\Package Cache" /xd Users\Public /xd Users\Default /xd Users\userName2 /xd Users\userName\AppData\LocalLow\Temp /xd Users\userName\AppData\Local\Temp

我尝试了很多方法,但都没有帮助。你能帮帮我吗?

4个回答

32
不要使用多个/xd!只需将第一个/xd后面的所有目录设置即可。
... /xd "dir1" "dir2" "dir3" ...

1
/x d是否排除子文件夹? - Timo
@Timo 是的,它不会复制“dir1”等子文件夹。 - Robin French

6
< p > /xd选项似乎与相对路径不兼容。请尝试改用绝对路径,例如:

robocopy c:\ l:\C\ /r:1 /w:1 /mir /dcopy:T /xjd /xjf /xj /copy:DT ... 
   /xd "C:\$Recycle.Bin" 
   /xd C:\Config.Msi 
   /xd C:\MSOCache
   /xd C:\Recovery 
   /xd "C:\System Volume Information" 

(Split for readability.)


2
我刚刚发现,在路径中任何包含“..”的情况下,/xd都无法工作。 - Sake
1
@Sake,这并不奇怪。 - Harry Johnston
2
如果你想把代码拆分成多行,可以在行末使用 ^ - Uwe Keim

3
在路径中,将双引号符号(例如"C:\$Recycle.Bin")替换为单引号符号('C:\$Recycle.Bin')。这是因为美元符号"$"开始变量并被解释为名为"$Recycle"的变量。

1
我的解决方案是创建包含我想要包含或排除的文件或目录的 .txt 文件。我将这些文件放在我的“备份”文件夹下的子文件夹“rcXcludes”中。我的命名方法如下。我用“rc”(表示 robocopy)作为前缀,然后是有关应用程序或文件系统部分的可识别符号,然后附加“B”或“R”(表示备份或恢复),然后是“I”或“X”(表示包含或排除),然后是“D”或“F”(表示目录或文件)。我用双引号和条目之间的空格将每个条目括起来。 “包含”文件可以有文件或目录,但目录必须有尾随反斜杠。在“排除”目录的文件中,您不使用尾随反斜杠。任何目录条目都是相对于 robocopy 命令中的源路径。这些 .txt 文件的全部内容必须在一行上,不能有回车换行符。 在我的批处理文件中,我使用 SET /P 命令将 .txt 文件导入变量。然后我使用这些变量作为 FILES 或在 /XF 或 /XD 之后。 例如,要备份当前用户的 Chrome 配置文件而不复制整个“默认”文件夹,我使用以下命令。
rcChromeBIF.txt  
"Bookmarks" "Custom Dictionary.txt" "Extension Cookies" "Favicons" "History" "Login Data" "Preferences" "Top Sites" "Visited Links" "Web Data" "Databases\" "Extensions\" "Local Storage\" "Plugin Data\" "User Scripts\" "User StyleSheets\"

rcChromeBXF.txt  
"Bookmarks.bak" "ChromeDWriteFontCache" "Cookies" "Cookies-journal" "Current Session" "Current Tabs" "Extension Cookies-journal" "Favicons-journal" "Google Profile.ico" "History Provider Cache" "History-journal" "Last Session" "Last Tabs" "Login Data-journal" "Network Action Predictor" "Network Action Predictor-journal" "Network Persistent State" "Origin Bound Certs" "Origin Bound Certs-journal" "QuotaManager" "QuotaManager-journal" "README" "Secure Preferences" "Shortcuts" "Shortcuts-journal" "Top Sites-journal" "TransportSecurity" "Web Data-journal"

rcChromeBXD.txt  
"Application Cache" "Cache" "data_reduction_proxy_leveldb" "Extension State" "File System" "GPUCache" "IndexedDB" "JumpListIcons" "JumpListIconsOld" "Local Extension Settings" "Media Cache" "Pepper Data" "Platform Notifications" "Service Worker" "Session Storage" "Storage" "Thumbnails" "Web Applications"

在C:\Backup文件夹中的批处理文件。
REM ChromeBak.bat
SET chromeprofdir=Google\Chrome\User Data\Default
SET /P rcChrmBIF=<C:\Backup\rcXcludes\rcChromeBIF.txt
SET /P rcChrmBXF=<C:\Backup\rcXcludes\rcChromeBXF.txt
SET /P rcChrmBXD=<C:\Backup\rcXcludes\rcChromeBXD.txt
robocopy "%LOCALAPPDATA%\%chromeprofdir%" "H:\ChromeBackup\%chromeprofdir%" %rcChrmBIF% /E /ZB /COPY:DAT /DCOPY:T /MT:4 /XJ /XF %rcChrmBXF% /XD %rcChrmBXD% /R:10 /W:2 /TBD /NP /V /TS /Log+:"H:\ChromeBackup\ChromeBackup.log"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接