我有一个这样的目录结构:
folder1\
help.txt
folder2\
help.txt
folder3\
help.txt
...
Run Code Online (Sandbox Code Playgroud)
我想使用robocopy复制 folder1 的内容。例如:
robocopy folder1 destination /E
Run Code Online (Sandbox Code Playgroud)
我想排除文件夹 1 中的 help.text 文件,但包括文件夹 2、文件夹 3 等中的 help.txt 文件。目录结构中的其他地方也可能有名为 help.txt 的文件,所以我不想硬编码要包含的文件的路径。
我可以使用以下命令排除所有名为 help.txt 的文件,但有没有办法只排除 folder1 根目录中的 help.txt 文件?
robocopy folder1 destination /E /XF help.txt
Run Code Online (Sandbox Code Playgroud) 我复制了两棵树,一个源和一个目标,我用 robocopy 像这样复制了它们:
robocopy /MIR C:\Windows\System32\tasks\ C:\temp\robocopyTasks\out\
robocopy /E /Copy:S /IS /IT C:\Windows\System32\tasks\ C:\temp\robocopyTasks\out\
Run Code Online (Sandbox Code Playgroud)
然后我使用 icacls 比较了权限,输出了两者的权限,唯一的区别似乎是原始文件包含我以前见过的一长串字符;我知道它代表系统中的一个用户或一个组,但我不记得它叫什么。字符串如下所示:
S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXX-XXXX
Run Code Online (Sandbox Code Playgroud)
它们可以与 VIM 中的这个正则表达式匹配:
/S-\d-\d-\d\{2\}-\d\{10\}-\d\{10\}\-\d\{9\}\-\d\{4\}/
Run Code Online (Sandbox Code Playgroud) 我正在尝试以下命令:
robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"
Run Code Online (Sandbox Code Playgroud)
编辑#1
原来上面的命令是有效的,我的路径中有一个错字。如果您有一个包含空格的路径,您可以将它们提供给 robocopy 的 /log 开关,如下所示:/log:"c:\path to a file\robocopy.log"
设想:
执行从旧 Server 2008 R2 到新 Server 2016 的服务器迁移,遵循此服务器故障指南:使用 Robocopy 进行文件服务器迁移
Robocopy 完成后,在 Server 2016 上为复制的卷启用重复数据删除,然后使用 PowerShell 手动开始重复数据删除。几个小时后,它完成并恢复了大约 25% 的磁盘空间。
再次运行 Robocopy 以复制初始副本中可能遗漏的任何内容,作为对新服务器的最终检查。
....但是 Robocopy(从 Server 2016 运行)不理解重复数据删除,因此继续将重复数据删除块存储作为垃圾..
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Sunday, July 8, 2018 12:10:02 PM
Source : \\SERVER-2008\e$\
Dest : \\SERVER-2016\e$\
Files : *.*
Options : *.* /TEE /S /E /COPYALL /PURGE /MIR /ZB /NP /MT:32 /R:1 /W:10
------------------------------------------------------------------------------
*EXTRA Dir -1 \\SERVER-2016\e$\System Volume Information\Dedup\
*EXTRA Dir -1 \\SERVER-2016\e$\System …Run Code Online (Sandbox Code Playgroud) 我想我会尝试使用 RoboCopy 将文件夹的内容镜像到另一个硬盘。似乎它奏效了。但是,出于某种原因,要查看目标文件夹,我必须同时启用Show hidden files, folders and drive并禁用Hide protected operating system files。为什么是这样?源文件夹和目标文件夹最初都是可见目录和普通目录。当我打开该目标文件夹的属性时,隐藏属性甚至被禁用。这里发生了什么?
是因为我在管理员命令提示符下运行它吗?还是我选择的修饰符有问题?或者 robocopy 真的只是这样工作吗?
Run Code Online (Sandbox Code Playgroud)robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA
更新:试图将另一个驱动器复制到另一个文件夹,我在那里发生了同样的事情。但是当我尝试将一个文件夹复制到另一个文件夹时,目标文件夹保持正常。可能是因为我复制了一个驱动器?如果是这样,我怎样才能防止这种情况发生?因为我真的很想复制整个驱动器...
我想使用 robocopy 移动大量文件,但白名单中的文件除外。白名单包含大约 150 个不同名称的文件。当我将白名单的文件名复制并粘贴到命令行中(使用/xf参数)时,robocopy 会截断列表。
c:\test> robocopy src dest *.ext /xf exclude1.ext exclude2.ext exclude3.ext ... exclude 299.ext exclude300.ext
Run Code Online (Sandbox Code Playgroud)
结果是:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Fri May 24 14:09:31 2013
Source : C:\test\src\
Dest : C:\test\dest\
Files : *.ext
Exc Files : exclude1.ext
exclude2.ext
exclude3.ext
....
....
exclude200.ext
exclude201.ext
exclu
Run Code Online (Sandbox Code Playgroud)
进而:
'exclude250.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude251.ext' is not recognized as an …Run Code Online (Sandbox Code Playgroud) Robocopy 可以配置为仅记录“错误”吗?
在大型复制工作中,我真的只想知道哪些文件没有被复制。
我正在尝试以静默方式自动复制一些文件。现在,我有 robocopy 将所有内容放入日志文件中,这很好,但完成后Log File: C:\<logfiledestination>会打印出来。我的命令如下所示:
robocopy source destination /mir /xd .svn /log:log.txt /np >nul 2>&1.
从网上搜索,我认为这>nul 2>&1会阻止任何东西出现。我对 Windows 命令行非常陌生,所以如果我做错了什么,请告诉我!
编辑:我在那里有一个幻影的半句我错过了。不过现在修好了。
我正在尝试以排除所选文件夹下所有子文件夹的方式使用 Robocopy。换句话说,我只想定位一个文件夹,并且只对其中的文件进行 robocopy,而不是它的子文件夹。有没有办法这样做?
我最近同步了一个外部硬盘,它有大约 1.4 TB 的数据与基于 Windows 的文件服务器上的 GUI 同步应用程序复制。同步方向,从左到右。
发生的问题是执行同步的 GUI 应用程序受到 Windows Explorer 255 路径大小限制。由于数据源自 UNIX 系统,这会阻止复制某些文件夹/文件,因为它们超出了此限制。
我现在想使用 robocopy 来获取遗漏的剩余目录和文件(因为它没有路径限制),而不是再次复制整个目录。是否有我可以使用的标志组合来实现这一目标?