使用VBA的7-zip命令行

时间:2013-09-24 13:41:42

标签: vba excel-vba command-line 7zip excel

作为运行宏的结果,我有一个包含各种文件类型的文件夹:.err,.txt,.sh,.fat ..

例如,如果我希望该宏只压缩.fat文件,那么效果非常好:

ShellStr = PathZipProgram & "7z.exe a " & " " & Chr(34) & NameZipFile & Chr(34) & " " & Chr(34) & FolderName & Chr(34) & "*.fat"

其中(我试图保持尽可能整洁):

  1. PathZipProgram - > 7zip目录
  2. NameZipFile - > Output.zip文件
  3. FolderName-> Input.zip文件
  4. 相反,如果我只想压缩其中一些文件(例如只有* .fat和* .sh),请阅读7-zip命令行手册,似乎:

    ShellStr = PathZipProgram & "7z.exe a " & " " & Chr(34) & NameZipFile & Chr(34) & " " & Chr(34) & FolderName & Chr(34) & "*.fat -i*.sh"
    

    也应该有效,但事实并非如此。任何有经验的人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

正如您在7-Zip命令行语法中所见:

7z <command> [<switch>...] <base_archive_name> [<arguments>...]

<arguments> ::= <switch> | <wildcard> | <filename> | <list_file>

所以你只需要重复你的源内容:

ShellStr = PathZipProgram & "7z.exe a """ & NameZipFile & """ """ & FolderName & "\*.fat"" """ & FolderName & "\*.sh"""

提示:您可以将字符串中的引号转义为加倍。