我遇到的问题与文件名中第一个空格被截断的文件名有关。
7z a -t7z "D:\IDRIVE\New backups\Program\full\6\File.7z" "D:\IDRIVE\New backups\Program\full\4\*.*" -mx9
以上是我使用的批次代码(实际上我使用的是日期而不是文件,但我想更改为原始名称)
File1.bak becomes file.7z
File2.bak becomes file.7z
如果文件夹中有两个文件,7zip将压缩
File1和File2,它成为名为file.7z的单个文件
我希望它分别压缩如下
File1 becomes File1.7z
File2 becomes Files2.7z
请给我你宝贵的建议
但是它会压缩文件并将其名称更改为压缩的日期和时间(这是我当时唯一的选择)。实际上我并不想改变它的原始名称。
使用此代码,文件夹中的两个文件将压缩为单个文件。我希望它们能够单独压缩
我想知道如何使它成为可能..我在批处理文件编程方面不是很好
答案 0 :(得分:1)
您无法使用7z.exe实现预期,因为它在cmdline上的工作方式与zip和tar的工作方式相同,您需要提供存档名称,后跟要压缩的文件名。它没有像gui那样有效。
但您可以将以下行放在批处理文件中
7z.exe a -tzip "%~n.zip" "%1"
并调用批处理文件,如
batch_file filename.bak
它将产生filename.zip
如果必须对许多文件执行此操作,则可以按如下方式修改批处理文件
FOR %%I IN (*.bak) DO (7z a -tzip "%%~nI.zip" "%%I")
为此,你必须进入bak文件的floder,并运行它,它将创建.zip文件 我希望可以围绕这个解决方案尝试其他必要的修改