如果名称是随机的,如何自动为目录中的每个文件夹创建 zip 存档?

如果名称是随机的,如何自动为目录中的每个文件夹创建 zip 存档?

我想自动保存 Roblox 版本的档案。Roblox 版本文件夹路径为“ C:\Users\USERNAME\AppData\Local\Roblox\Versions”。它通常只有 2 个文件夹:一个用于 Roblox,另一个用于 Roblox Studio。文件夹名为“version-”,然后是一堆随机字母和数字。


每次 Roblox 更新时,它都会删除旧文件夹并创建一个名为“version-”的新文件夹,然后是一堆随机字母和数字。对于拥有相同版本的每个人来说,名称都是相同的,只是在将其放入更新之前是随机的。我拥有的当前 Roblox 版本是一个名为“ version-aa6e1ad459964fc3”的文件夹。我拥有的当前 Roblox Studio 版本是一个名为“ version-698262888e864914”的文件夹。我可以手动存档它们,但我想有时我会忘记,然后其他人就没有存档了,然后该版本将永远丢失/直到有人停止在计算机上玩 Roblox 并回来在他们的计算机上找到它并将其上传到网上。那么,有没有办法自动执行此操作?我尝试使用 7-zip 和批处理文件和任务计划程序,但我无法弄清楚要使用什么命令。


此外,我保存的 2 个档案每个大约 200mb,而 D 盘上还有 774gb 的可用空间,如果我的计算正确的话,我可以在那里存放大约 3870 个 Roblox 版本的档案。而且 Roblox 每 3-4 天更新一次,因此 D 盘大约需要 11610 天才能装满档案。我并不担心我的存储空间。

答案1

您有足够的磁盘空间,因此不需要压缩,简单复制即可。

COPY:用于复制文件
XCOPY:用于复制整个文件夹

有一个简单的批处理脚本可以执行以下操作:
DIR C:\Users\USERNAME\AppData\Local\Roblox\Versions\
XCOPY /E /V /C /H /K /O /X /Y /J C:\Users\USERNAME\AppData\Local\Roblox\Versions\* D:\roblox-archives\
DIR D:\roblox-archives\

意义:

C:\Users\USERNAME\AppData\Local\Roblox\Versions\* IS SOURCE , using wildcard to match the ever changing folder name  
D:\roblox-archives\ IS DESTINATION (make sure it exists)  
DIR on the SOURCE to see what new content is available  
DIR on the DESTINATION to see what content has been archived till now  

XCOPY OPTIONS :  
  /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  
  /O           Copies file ownership and ACL information  
  /X           Copies file audit settings  
  /Y           Suppresses prompting  
  /J           Copies using unbuffered I/O. Recommended for very large files  

首先,转到 CMD 提示符并执行此 bat 脚本。确保它能正常工作。当您对所选的必要标志感到满意时,您可以重新运行它,以确保它在重新复制时也能正常工作,即当 SOURCE 已存在于 DESTINATION 上时。

完成所有这些检查后,您就可以继续进行自动化:
将此脚本放入其中,task Scheduler每天执行一次。完成。

偶尔,您可以查看一下D:\roblox-archives\,也许每个月左右创建一个 zip 文件,通过选择所有内容并创建新的 zip 文件。

答案2

我尝试使用 Prem 的答案,结果出现了错误,于是我又开始四处寻找。我发现这个 Stack Overflow 问题那基本上就是在问如何让 Prem 所说的脚本工作(COPY /Y C:\Users\USERNAME\AppData\Local\Roblox\Versions\* D:\roblox-archives\),并且有一个答案这有点帮助,但不是那么大。然后我看到此评论有一个可以运行的脚本,可以将所有内容从复制到C:\Users\USERNAME\AppData\Local\Roblox\VersionsD:\roblox-archives现在我只希望任务计划程序可以工作,因为我之前使用任务计划程序的尝试很糟糕,对我来说没有任何效果。


剧本是xcopy [source] [destination] /E /H /C /R /Q /Y

相关内容