是否可以制作一个批处理脚本,仅当源文件比目标文件旧时才使用 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 脚本。您应该在更新之前手动运行它SOUNDX
,SOUNDY
您的存档将包含您想要的内容!
具有自动解决方案的场景 2:
假设您想运行任务计划程序,但您不想复制新的内容SOUNDY
而只想将原始内容复制SOUNDX
到档案中。
在这种情况下,这将起作用:当您手动将不需要的 SOUNDX 更改为 SOUNDY 时,请在 (比如说) &
中复制 SOUNDX 和 SOUNDY,这是一种在需要时恢复它的方法。D:\SOUNDS\SOUNDX
D:\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
....
这会起作用,但如果您在文件夹名称或文件名方面遇到困难,请告诉我,我们可以解决问题。