如何复制文件,只有在文件大小不同时才覆盖?


11

我正在寻找的是在Windows GUI中无缝工作的东西,而不是像robocopy这样的命令行实用程序。我做了很多各种文件的小型复制/粘贴,我希望windows只是在文件大小不同的情况下总是覆盖,如果filesize是相同的,那么它什么都不做。可以吗?


如果我是你,我会使用时间戳而不是文件大小(除非你有明确的理由使用后者)。
Breakthrough

@Breakthrough有意义,如果一个工具让我做任何一个我会很高兴。
CreeDorofl

@CreeDorofl我会修改你的问题以使用时间戳 - 这很可能是你获得downvotes的原因。不要依赖文件大小或文件内容保持一致 - 曾经
Breakthrough

1
你试过超比较吗?它可用于根据任何标准比较文件和文件夹。
James Woolfenden

@James Woolfenden我没有,但听起来和我希望的有点不同。在一个完美的世界里,我没有需要运行的第三方程序...我只是将一堆文件拖放到一个文件夹中,如果大小/时间戳不同而没有唠叨我,那么窗口会覆盖......或者最糟糕的是,一个对话框,显示通常的覆盖选项,再加上一个:“仅在时间戳/文件大小不同时才覆盖”。
CreeDorofl

Answers:


5

您可以使用 TeraCopy的 如果你愿意,那么只需设置设置。或者,它还会询问您在文件复制操作期间存在文件名冲突时要执行的操作(因此您可以根据具体情况对其进行处理)。此外,如果检测到冲突,您可以选择逐个文件或整个传输队列执行的操作。

TeraCopy还与Windows shell集成,用它自己的界面替换默认的复制和粘贴操作。

注意:截至2014年9月,TeraCopy仅适用于Windows或具有大容量存储模式(Android Gingerbread和早期版本的Ice Cream Sandwich)的Android设备(智能手机和平板电脑)。使用Android v4.2 Jelly Bean或更高版本的较新设备仅具有用于文件传输的MTP模式,并且TeraCopy无法“看到”使用MTP模式进行文件传输的设备。


我记得以前尝试过Teracopy,出于某些原因我把它搞定了但是我愿意再试一次,如果它允许我这样做的话。谢谢你的建议。
CreeDorofl

@CreeDorofl确实如此,您也可以使用批处理文件来执行您想要的操作。您也可以根据具体情况做您想做的事情(当您尝试替换文件时,它会询问您对整个批处理或仅对该文件执行的操作)。恕我直言,TeraCopy是 最好的 资源管理器文件管理替换工具。
Breakthrough

除了TeraCopy还有其他好的工具吗?
avirk

我会推荐这个或复制处理程序。
surfasb

1
在我看来,TeraCopy只有“如果更老”而不是“如果文件大小不同” - 是吗?在某些情况下,后者是可取的:可能是为了完成以前未完成的复制,或者当您知道源是最新版本时,即使目标(最近可能是错误地)编辑了。
Greg Zaal

3

rsync也可以在Windows上使用,它是一个更灵活的工具 - 它只有比较时间戳的命令行选项,但它也提供带宽限制操作的spme加速 - 比如通过网络复制或慢速(写速度)驱动器因为它能够限制自己转移更换的部件。


3

KDiff3

KDiff3是一个程序:

  • 比较或合并两个或三个文本输入文件或目录,
  • 逐行显示差异,逐字符显示(!),
  • 提供自动合并设施和
  • 一个集成的编辑器,可以轻松解决合并冲突,
  • 支持Unicode,UTF-8和其他编解码器,通过字节顺序标记“BOM”自动检测
  • 在KDE上支持KIO(允许访问ftp,sftp,fish,smb等),
  • 打印差异,
  • 手动对齐线条,
  • 自动合并版本控制历史记录($ Log $),
  • 并具有直观的图形用户界面。
  • Windows-Explorer集成Diff-Ext-for-KDiff3 - 安装程序中包含的shell扩展(最初由Sergey Zorin提供:另请参阅Diff Ext)
  • KDE-Konqueror服务菜单插件
  • 与IBM-Rational-Clearcase for Windows简化集成

enter image description here


3
如何与Windows资源管理器集成,非常无缝?我想拖放,让窗户不会弹出任何对话。
CreeDorofl

请扩大这个答案。仅链接答案可能会被删除。
soandos

2

我知道这已经是几年前了,但我刚刚发现了一个可以完全执行所需任务的免费工具。命令行工具, XXCOPY 通过 Pixelab http://www.xxcopy.com/

在我自己的场景中,我使用FFmpeg的qscale选项批量重新压缩了数百个JPEG图像,而我正在寻找一种只覆盖较小文件的方法。所以我尝试了它,它与我合作。我通过创建备份文件夹进行验证,然后比较文件夹大小。两个文件夹的文件数相同,但另一个文件夹现在较小。

原始问题和答案在这里:

仅覆盖较小的文件 https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/Agooyf23kFw

令人惊讶的是,它还包括Asker问题的解决方案。以下是XXCOPY作者答案的一部分:

你能给我一个暗示吗?

我的问题:     我在一个子目录中的一些目录中得到了一些文件并且想要     复制子目录中的文件。     真正的问题是应该只覆盖更小的文件。

您可以尝试XXCOPY(个人使用的免费软件)。你想要的命令   可能是:

xxcopy \your_source\  \destination\   /s /bzs /y

备份操作还有其他变化

  /BI  // backup incremental (skip files of same size and time)
  /BN  // backup newer files only
  /BO  // backup older files only
  /BX  // backup files with a different timestamp
  /BZS // backup smaller files only
  /BZL // backup larger files only
  /BZX // backup files with different size
  /BZE // backup files with the same size
  /BS  // backup files with same size and timestamp

它还具有多功能排除功能。你也可以申请   删除操作中的文件选择机制。另一个优势   Xcopy是XXCopy在任何Windows版本中的行为方式相同   (95,98,ME,NT / 2K / XP)。

所以我猜Asker需要的 /肿消 代替。


感谢您的建议......我最终使用了teracopy,它非常有用......但总是很好有其他选择。
CreeDorofl

0

遇到这个问题寻找一种只复制较新文件的方法(而不是OP有的文件大小要求)。在此发布此解决方案,因为这对我有用。

我正在使用Beyond Compare。比较两个文件夹时,右键单击任意一侧并选择 Synchronize > Update Right 要么 Update Left。这将负责仅复制较新的文件。

Beyond Compare是一款付费软件,但可免费试用30天。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.