我得到了以下vbscript测试代码,通过WinZip命令行压缩一些测试文件:
Dim strWinZipDir, strZipFileToCreate, strFilesToZip, strWinZip, strCommand
strWinZipDir = "C:\Program Files\WinZip\Winzip32.exe"
strZipFileToCreate = "C:\Users\ext_dirmod_01\Desktop\TestLog.zip"
strFilesToZip = """C:\Users\ext_dirmod_01\Desktop\FacturasGRA.vbs"" ""C:\Users\ext_dirmod_01\Desktop\Test Zip Windows.vbs"""
Set objFSO = CreateObject("Scripting.FileSystemObject")
strWinZip = objFSO.GetFile(strWinZipDir).ShortPath
strCommand = strWinzip & " -min -a -r """ & strZipFileToCreate & """ " & strFilesToZip
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec(strCommand)
Do While objExec.Status = 0
Loop
我想要做的是记录zip进程的运行,以便成功完成和出错。如果出现错误,我想要做的就是获取WinZip返回的确切消息。
我尝试了几种方法:
>
)。此方法不会在文件上写任何内容。有谁知道我还能/应该尝试什么?
答案 0 :(得分:0)
这是一个图形程序。它没有使用控制台。因此,你不能。
如果你使用的是正版程序,你会发现PKZip有命令行版本。 https://www.pkware.com/software/pkzip
答案 1 :(得分:0)
正如@CheranShunmugavel在对另一个答案的评论中所指出的,知识库文章引用了WinZip Command Line utility。如果您想在命令行上使用WinZip,我强烈建议您使用该附加组件,即使常规WinZip可执行文件支持some basic command line parameters。
请注意,如果要使用输出重定向(>
),则必须在CMD中运行命令,因为重定向由命令解释程序提供。为简化处理,我还建议使用Run
方法而不是Exec
方法,除非您需要以编程方式从STDOUT和/或STDERR读取。
Set objShell = CreateObject("WScript.Shell")
rc = objShell.Run("cmd /c " & strCommand & " >C:\path\to\your.log 2>&1", 0, True)
If rc <> 0 Then WScript.Echo "An error occurred (" & rc & ")."
WScript.Quit rc