运行 来自 vba 时命令行不工作
command line not working when run from vba
我正在尝试通过我的 VBA 代码解压缩文件。我正在使用 7z 命令行解压缩文件。但是,当来自正常命令提示符的 运行 时,该命令有效,但当通过 VBA 代码 运行 时,同一命令不起作用。
Command:
"C:\Program Files-Zipz.exe" x "C:\Users\Public\AppData\Local\Temp\Sample.zip"
为了进一步了解,我正在尝试提取一个 docx 文件,这就是我将其重命名为 .zip 然后提取的原因。
Sub tst()
Dim MyFile As String, Outdir As String, Cmdstr As String
MyFile = Chr(34) & "c:\TMP\ratings.gz" & Chr(34)
Outdir = Chr(34) & "c:\tmp[=13=]" & Chr(34)
Cmdstr = "c:\Program Files-Zipz.exe" & " e " & MyFile & " -o" & Outdir
Debug.Print Cmdstr
Call Shell(Cmdstr, 1)
End Sub
我用过这种功能(类似)来解压文件。
缺少正确的引号,应该是
Cmdstr = """c:\Program Files-Zipz.exe""" & " e " & MyFile & " -o" & Outdir
7-Zip 的命令行版本是7za.exe
而不是7z.exe
。
我不确定 运行 使用 Shell
方法的 CLI 应用程序,但下一个可以工作:
Cmdstr = "cmd /D /C " & """full path to 7zaza.exe""" & " e " & MyFile & " -o" & Outdir
编辑。要保留文件夹结构,请使用 7z 和 x
命令而不是 e
命令。 e
命令将所有提取的文件复制到一个目录,而 z
命令从存档中提取文件,其完整路径在当前目录中,或者在指定的输出目录中。所以你可以定义 Cmdstr
如下:
Cmdstr = """c:\Program Files-Zipz.exe""" & " x " & MyFile & " -o" & Outdir
我正在尝试通过我的 VBA 代码解压缩文件。我正在使用 7z 命令行解压缩文件。但是,当来自正常命令提示符的 运行 时,该命令有效,但当通过 VBA 代码 运行 时,同一命令不起作用。
Command:
"C:\Program Files-Zipz.exe" x "C:\Users\Public\AppData\Local\Temp\Sample.zip"
为了进一步了解,我正在尝试提取一个 docx 文件,这就是我将其重命名为 .zip 然后提取的原因。
Sub tst()
Dim MyFile As String, Outdir As String, Cmdstr As String
MyFile = Chr(34) & "c:\TMP\ratings.gz" & Chr(34)
Outdir = Chr(34) & "c:\tmp[=13=]" & Chr(34)
Cmdstr = "c:\Program Files-Zipz.exe" & " e " & MyFile & " -o" & Outdir
Debug.Print Cmdstr
Call Shell(Cmdstr, 1)
End Sub
我用过这种功能(类似)来解压文件。
缺少正确的引号,应该是
Cmdstr = """c:\Program Files-Zipz.exe""" & " e " & MyFile & " -o" & Outdir
7-Zip 的命令行版本是7za.exe
而不是7z.exe
。
我不确定 运行 使用 Shell
方法的 CLI 应用程序,但下一个可以工作:
Cmdstr = "cmd /D /C " & """full path to 7zaza.exe""" & " e " & MyFile & " -o" & Outdir
编辑。要保留文件夹结构,请使用 7z 和 x
命令而不是 e
命令。 e
命令将所有提取的文件复制到一个目录,而 z
命令从存档中提取文件,其完整路径在当前目录中,或者在指定的输出目录中。所以你可以定义 Cmdstr
如下:
Cmdstr = """c:\Program Files-Zipz.exe""" & " x " & MyFile & " -o" & Outdir