是否可以让 XCOPY 仅复制源中的文件比目标中的文件旧?

是否可以让 XCOPY 仅复制源中的文件比目标中的文件旧?

是否可以制作一个批处理脚本,仅当源文件比目标文件旧时才使用 XCOPY 复制这些文件?我正在尝试存档 Roblox 版本。我尝试了 /D,但这样只会在源文件比目标文件新时复制源文件。我想要这个只是因为可以通过 Versions 文件夹更改 Roblox 文件,并且我不希望将更改的文件保存到存档中。Roblox 最近将死亡声音从标志性的“Oof!”更改为非常糟糕的“Teh!”。我想将其改回“Oof!”音效,但如果我这样做并且任务运行,副本将具有“Oof!”音效,而不是“Teh!”音效。如果您需要更多信息,我几天前发布了另一篇文章,我会继续发下去。这是帖子。我使用的脚本是:

DIR C:\Users\USERNAME\AppData\Local\Roblox\Versions\
XCOPY /E /V /C /H /K /Y /J /D /O /X C:\Users\USERNAME\AppData\Local\Roblox\Versions\* "D:\REALNAME\File History\Roblox Version Archive"
DIR "D:\REALNAME\File History\Roblox Version Archive"

标志含义:

/E   Copies directories and subdirectories, including empty ones
/V   Verifies the size of each new file  
/C   Continues copying even if errors occur  
/H   Copies hidden and system files also  
/K   Copies attributes  
/Y   Suppresses prompting  
/J   Copies using unbuffered I/O. Recommended for very large files  
/D   Copies all Source files that are newer than existing Destination files.
/O   Copies file ownership and ACL information  
/X   Copies file audit settings  

所以我的问题是,如果源版本比目标版本新,是否存在一个标志/脚本可以禁用覆盖?

答案1

要么是我没有理解你的问题,要么是你混淆了很多事情!

我提供这些解决方案是因为您要求这样做,但是有更好的方法来实现自动化,但这需要额外的环境知识和编程经验!

方案 1 采用手动解决方案

假设 ROBLOX 有一个新版本V1.RANDOM并且它包含“Image1 Image2 Image3 Text1 Text2 SOUNDX”

V1.RANDOM不会在存档目录中,因此您必须复制所有内容。稍后当您将 SOUNDX 更改为 SOUNDY 时,不要再次复制,因为您已经有 的档案V1.RANDOM

甚至后来,ROBLOX 有版本V2.RANDOM& 它包含“Image1 Image2 Image4 Text3 Text4 SOUNDX”
V2.RANDOM将不会在存档目录中,因此您必须再次复制所有内容。
稍后当您手动更改SOUNDX为时SOUNDY不要再次复制,因为您已经有 的档案V2.RANDOM

在这种情况下,您不应该通过任务计划程序运行 BAT 脚本。您应该在更新之前手动运行它SOUNDXSOUNDY您的存档将包含您想要的内容!

具有自动解决方案的场景 2:

假设您想运行任务计划程序,但您不想复制新的内容SOUNDY而只想将原始内容复制SOUNDX到档案中。

在这种情况下,这将起作用:当您手动将不需要的 SOUNDX 更改为 SOUNDY 时,请在 (比如说) &
中复制 SOUNDX 和 SOUNDY,这是一种在需要时恢复它的方法。D:\SOUNDS\SOUNDXD:\SOUNDS\SOUNDY

然后在 XCOPY 行之前和之后用以下几行更新你的 BAT 脚本:


....
CD "C:\Users\USERNAME\AppData\Local\Roblox\Versions\*\PATH-TO-FOLDER-CONTAINING-SOUNDX" ## USE WILDCARD * in CD COMMAND !  
COPY /Y D:\SOUNDS\SOUNDX <<SOUND-FILE-NAME>>  ## PUT BACK original unwanted SOUNDX before XCOPY  
XCOPY ....  
COPY /Y D:\SOUNDS\SOUNDY <<SOUND-FILE-NAME>  ## PUT BACK wanted SOUNDY after XCOPY  
CD "C:\Users\USERNAME\AppData\Local\Roblox\Versions\" ## come out of ROBLOX DIRECTORY  
....

这会起作用,但如果您在文件夹名称或文件名方面遇到困难,请告诉我,我们可以解决问题。

相关内容