首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制Robocopy覆盖文件?

如何强制Robocopy覆盖文件?
EN

Stack Overflow用户
提问于 2016-11-22 22:22:42
回答 2查看 121.9K关注 0票数 31

通常,Robocopy会忽略lastwrittendate和文件大小相同的文件。我们怎样才能摆脱这种设计?我想用Robocopy强制覆盖。

我希望dst\sample.txt应该被写成test001。但是这些文件被Robocopy识别为相同的文件,并且不会被覆盖。在这种情况下,"/IS“选项无效。

代码语言:javascript
运行
复制
New-Item src -itemType Directory
New-Item dst -itemType Directory
New-Item src\sample.txt -itemType File -Value "test001"
New-Item dst\sample.txt -itemType File -Value "test002"
Set-ItemProperty src\sample.txt -Name LastWriteTime -Value "2016/1/1 15:00:00"
Set-ItemProperty dst\sample.txt -Name LastWriteTime -Value "2016/1/1 15:00:00"

ROBOCOPY.exe src dst /COPYALL /MIR
Get-Content src\sample.txt, dst\sample.txt
> test001
> test002

ROBOCOPY.exe src dst /COPYALL /MIR /IS
Get-Content src\sample.txt, dst\sample.txt
> test001
> test002
EN

回答 2

Stack Overflow用户

发布于 2020-08-21 15:44:01

这真的很奇怪,为什么没有人提到/IM开关?!我已经在备份作业中使用它很长一段时间了。但是我刚才试着用谷歌搜索,我甚至在MS website上都找不到任何关于它的网页!我也发现很多用户都在抱怨同样的问题!

不管怎样..。要使用Robocopy覆盖源或目标中的所有内容,无论大小或时间如何,您必须在命令中包含以下三个开关(/IS、/IT、/IM)

代码语言:javascript
运行
复制
/IS :: Include Same files. (Includes same size files)
/IT :: Include Tweaked files. (Includes same files with different Attributes)
/IM :: Include Modified files (Includes same files with different times).

这正是我用来传输几个TeraBytes文件(主要是1GB+文件)的命令(ISOs磁盘映像- 4K视频):

代码语言:javascript
运行
复制
robocopy B:\Source D:\Destination /E /J /COPYALL /MT:1 /DCOPY:DATE /IS /IT /IM /X /V /NP /LOG:A:\ROBOCOPY.LOG

我为你做了一个小测试..结果如下:

代码语言:javascript
运行
复制
               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :      1028      1028         0         0         0       169
   Files :      8053      8053         0         0         0         1
   Bytes : 649.666 g 649.666 g         0         0         0   1.707 g
   Times :   2:46:53   0:41:43                       0:00:00   0:41:44


   Speed :           278653398 Bytes/sec.
   Speed :           15944.675 MegaBytes/min.
   Ended : Friday, August 21, 2020 7:34:33 AM

Dest,Disk:WD Gold 6TB (将写入速度与我的结果进行比较)

即使有了这些“额外的”,那也只是为了报告,因为"/X“开关。正如您所看到的,没有任何内容被跳过,所有文件的总数和大小都等于复制的文件。有时,当我滥用它并在操作过程中多次取消它时,它会显示少量跳过的文件,但即使这样,前两列中的值始终是相等的。我之前还通过运行一个PowerShell脚本确认了这一点,该脚本扫描目标中的所有文件并生成所有时间戳的报告。

从我使用它的历史和如此多的测试和麻烦中一些性能技巧!:

。尽管大多数在线用户建议使用最大线程"/MT:128“,就像获得最佳性能的一般技巧一样... 请不要在非常大的文件中使用"/MT:128”...这是一个很大的错误,它会在几次运行后显著降低您的驱动器性能。它将创建非常高的碎片,甚至在某些情况下导致文件系统失败,您最终会花费宝贵的时间来尝试恢复原始分区和所有这些废话。最重要的是,它的执行速度会慢4-6倍!

用于超大型文件的

影响仅使用"One“线程"/MT:1”|:

  1. 使用"/J“禁用缓冲。| Impact: High
  2. Use "/NP“with "/LOG:file”和‘t output to console by "/TEE“| Impact: Medium。
  3. 将"/LOG:file”放在与源或目标不同的驱动器上| Impact: Low。

常规大文件的

高速缓存使用多线程,我不会超过“

  • ”|影响:BIG

  • IF目标磁盘缓存规格较低使用"/J“禁用缓冲|影响:高

  • &4同上。

数以千计的小文件的

  1. Go坚果:)对于多线程,我一开始会从16开始,然后在监控磁盘性能的时候从2开始。一旦它开始下降,我将回退到之前的值并使用它| Impact:使用"/J“| Impact: High
  2. 将"/NP”与"/LOG:file“和一起使用不要通过”“将"/TEE”输出到控制台| Impact:HIGH.
  3. Put在与源或目标不同的驱动器上使用“/TEE”| Impact: High/LOG:file
票数 13
EN

Stack Overflow用户

发布于 2018-02-21 05:28:41

我这样做是为了一个主文件夹,其中所有文件夹都在相应用户的桌面上,可以通过没有适当权限的快捷方式访问,因此即使它在那里,用户也看不到它。因此,我使用带有参数的Robocopy来覆盖具有正确设置的文件:

代码语言:javascript
运行
复制
FOR /F "tokens=*" %G IN ('dir /b') DO robocopy  "\\server02\Folder with shortcut" "\\server02\home\%G\Desktop" /S /A /V /log+:C:\RobocopyShortcut.txt /XF *.url *.mp3 *.hta *.htm *.mht *.js *.IE5 *.css *.temp *.html *.svg *.ocx *.3gp *.opus *.zzzzz *.avi *.bin *.cab *.mp4 *.mov *.mkv *.flv *.tiff *.tif *.asf *.webm *.exe *.dll *.dl_ *.oc_ *.ex_ *.sy_ *.sys *.msi *.inf *.ini *.bmp *.png *.gif *.jpeg *.jpg *.mpg *.db *.wav *.wma *.wmv *.mpeg *.tmp *.old *.vbs *.log *.bat *.cmd *.zip /SEC /IT /ZB /R:0

正如你所看到的,有许多我设置为忽略的文件类型(只是为了以防万一),只是根据你的需要或你的案例场景来设置它们。

它在Windows Server 2012上进行了测试,每个交换机都记录在Microsoft的网站和其他网站上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40744335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档