Gor*_*McD 71 windows-server-2008-r2 robocopy
在从备份恢复之前,我试图从服务器复制一些目录(我的最新备份已损坏,所以我必须使用旧的 :( )。我在 Windows 恢复环境中并且可以访问服务器的文件systemG:\和我的备份媒体C:\。但是,由于我更熟悉 Linux,我在 Windows 中的命令行方面遇到了一些麻烦,特别是robocopy.
我想将多个目录(保持相同的目录结构)从 G:\ 复制到 C:\,同时排除其他目录(即 Windows 和 Program Files 文件夹)。我无法弄清楚该/XD选项的语法。我希望做这样的事情:
robocopy G: C:\backup /CREATE /XD "dir1","dir2", ...
Run Code Online (Sandbox Code Playgroud)
注意:我想澄清一下,我想在保持目录结构的同时复制实际文件。我刚刚检查过,/create只创建空文件。奇怪的。
Gor*_*McD 115
我通过一些反复试验和/L(在真正执行命令之前测试命令)弄清楚了。我最终得到的命令是:
robocopy G: C:\backup /MIR /XD G:\dir1 "G:\dir 2" G:\dir3 ...
Run Code Online (Sandbox Code Playgroud)
显然,包含尾部斜杠会使 robocopy 无法正确解析目录列表,因此请确保不要在目录名称中包含尾部斜杠,并记住在名称中有空格的目录周围加上引号。
该/MIR选项在复制文件时保持相同的目录结构。
编辑:经过更多研究,我稍微改进了命令:
robocopy G: C:\backup /MIR /Z /LOG:C:\todaysdate-backup.log /XF *.iso *.log *.au /XD G:\dir1 ...
Run Code Online (Sandbox Code Playgroud)
新增内容如下:
/Z 允许重新启动作业/LOG:<logfile path> 不言自明。/XF 被用来排除某些文件类型,所以它不会花那么长时间你必须重复这/XD部分
C:\>robocopy "C:\Users\weberjn\Google Drive" "u:\Google Drive" /e /dcopy:t /copy:DT /r:0 /XD "C:\Users\weberjn\Google Drive\photos" /XD "C:\Users\weberjn\Google Drive\Google Photos"
Run Code Online (Sandbox Code Playgroud)
我知道这不能回答 OP 的问题,但对于来自 google 的任何人:如果您使用引号,XD 将在作业文件中失败。
坏的:
::
:: Exclude These Directories :
::
/XD :: eXclude Directories matching these names
"Temporary Internet Files"
Run Code Online (Sandbox Code Playgroud)
好的:
::
:: Exclude These Directories :
::
/XD :: eXclude Directories matching these names
Temporary Internet Files
Run Code Online (Sandbox Code Playgroud)
一行接一行地放置尽可能多的排除项,不使用引号(无论是否有空格)。
我发现这一点的方法是使用命令行开关 /SAVE:myjobname 将引号从我引用的目录中删除!
| 归档时间: |
|
| 查看次数: |
306614 次 |
| 最近记录: |