复制所有文件,跳过已存在的文件,并删除目标中不在源中的文件

复制所有文件,跳过已存在的文件,并删除目标中不在源中的文件

我想这可以用 Robocopy 来实现 - 我想将我的音乐库从 PC 上的文件夹复制到我的 mp3 播放器。我有大约 5000 首歌曲,每次添加专辑时我可能都会运行该副本。

现在,只需使用 Windows 复制,我就可以跳过预先存在的文件,它就会这样做,并且运行速度相对较快。但是,我希望我的目标(mp3 播放器)能够反映删除音乐也是如此。我不确定是否只使用镜像命令就可以做到这一点 - 我认为它不会考虑预先存在的文件。

简单示例:

源文件夹:

song1.mp3
song3.mp3
song4.mp3

复制之前的目标文件夹:

song1.mp3
song2.mp3
song3.mp3

复制后的目标文件夹(与源文件夹相同):

song1.mp3
song3.mp3
song4.mp3

重要的一点是,在复制时,song1.mp3song3.mp3被跳过(没有覆盖,否则复制将需要很长时间 - 因为我有很多歌曲)并且song2.mp3被删除。

答案1

我会使用这样的东西:

robocopy <Source> <Destination> /E /COPY:DAT /XO /PURGE /R:1 /W:1

来自 robocopy 的帮助:

/PURGE :: delete dest files/dirs that no longer exist in source.
/XO :: eXclude Older files.

答案2

这似乎是备份软件的任务。我还没有尝试过,但是同步我觉得还不错。这是经过实战检验的 F/OSS 工具的 Windows 包装同步带有 GUI,是一个不错的奖励。

请注意,在我链接的页面上,他们说“但是,您必须有一个可以运行的 ssh 系统。”,但我不会从字面上去理解,如果两个点都是本地的,软件不应该拒绝在 ssh 缺失的情况下运行。

答案3

您所要做的就是使用以下/MIR选项运行 Robocopy:

robocopy SOURCE DESTINATION /MIR

如果您想要详细输出,请添加/ETA /V

robocopy SOURCE DESTINATION /MIR /ETA /V

如果您想强制 Robocopy 仅复制 MP3 文件,请添加以下/IF选项:

robocopy SOURCE DESTINATION /MIR /ETA /V /IF *.mp3

如果目标文件系统是 FAT(16、32 或 64),请添加以下/FFT选项:

robocopy SOURCE DESTINATION /MIR /ETA /V /IF *.mp3 /FFT

该命令robocopy /?提供了可用选项的完整列表。

相关内容