如何将一堆具有相同名称的文件与其路径压缩?


2

我在Windows PC上的项目中的许多文件夹中都有许多具有相同名称的文件。数千个文件夹中有数十万个源文件。

他们需要被派出去进行本地化。没有任何源代码可以使用它们 - 只有属性文件,所以我不能只是压缩整个项目并将其发送出去。

  • 我不能把它们放在一个zip文件中 - 它需要唯一的名字。

  • 我尝试使用Agent Ransack,它将列出其路径中的所有文件,但遗憾的是7Zip忽略了路径并抱怨缺乏唯一名称。

我需要的是一种脚本或自动方式,将各自文件夹中的某些属性文件转换为zip存档。然后,当他们在一次操作中返回时,他们可以在现有的解压缩之前解压缩。


1
你在用什么操作系统?如果是windows,FOR命令会帮助你。
LPChip 2015年

1
“数千个文件夹中有成千上万的源文件” 颤抖
236012 2015年

“我的上帝,它充满了文件!”
K5AAY 2015年

正如使用此FOR命令所提到的,您可以在此处查看此线程sourceforge.net/p/sevenzip/discussion/45797/thread/a7639897,这可能会让您有所了解。
vembutech 2015年

Answers:


3
7z a -tzip project.zip -ir!DIR1\*.cpp

将在DIR1中和DIR1下获取所有带有.cpp扩展名的文件并将它们放入名为project.zip的存档中。然后,将带有.abc扩展名的更多文件添加到该存档

7z u project.zip -ir!DIR1\*.abc

-t指定存档类型(ZIP)。的-i-r开关组合成-ir其中 ncludes文件名和- [R ecurses子目录。必须引用带有空格的通配符或文件名,即“Dir \ Program files *”或Dir \“Program files”*

-

您还可以使用通配符生成要包含的文件规范列表,然后仅将这些文件放入存档中,并使用:

7z a -r -tzip archive.zip @listfile.txt

-

由于您对源代码文件使用了一致且唯一的命名约定,因此您可以在创建时使用-x标志排除文件中不需要的文件,la:

7z a -r archive1.zip subdir\ -x!*.src

这将生成一个档案,不包括以.src结尾的文件

7-zip附带的帮助文件,你可以从应用程序的GUI版本访问,有更多的细节和更多的开关。

-

如果它不是那么庞大,我可能会建议从命令行使用7z扫描所有内容,然后在传输之前从存档中删除源代码。

7z a -r archive1.zip subdir\

将文件夹子目录下的所有文件和子文件夹添加到archive archive1.zip。存档中的文件规范将包含subdir \ prefix。

然后使用7zip文件管理器删除源代码文件。


数千个文件夹中有数十万个源文件 - 手动从zip中删除它们比手动获取每个文件和手动创建文件夹更难。
davidjmcclelland 2015年

感谢您更新的答案。也许我可以在命令行中使用匹配的过滤器 - 我只有两个文件名包含在数千个文件夹中,因此可能有效。
davidjmcclelland 2015年

7z a -tzip -r“C:\ Users \ me \ path \ UI Team \ LANGUAGE_STRINGS \ messages.zip”messages _ ??。properties 7z a -tzip -r“C:\ Users \ me \ path \ UI Team \ LANGUAGE_STRINGS \ jspResources.zip“jspResources _ ??。properties使用这两个命令,我只获得了共享一个公共文件名所需的文件。我没有使用FOR或循环,7-Zip完成了幕后的所有肮脏工作。最好的建议是咨询Sourceforge的文档,但这是一个评论而不是答案,你的建议很大程度上反映了我在那里找到的东西。我甚至不记得7-zip有一个命令行执行器哈哈。
davidjmcclelland 2015年
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.