下面的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返回的确切消息。
我尝试过几种方法:
>中的建议,在命令行的末尾添加一个大于符号(>)的文件名。此方法不会在文件上写入任何内容。有人知道我还能/应该尝试什么吗?
发布于 2015-06-01 09:30:00
正如@CheranShunmugavel在对另一个答案的评论中指出的,知识库文章指的是WinZip命令行实用程序。如果您想在命令行上使用WinZip,我强烈建议您获得该附加项,即使常规的WinZip可执行文件确实支持一些基本命令行参数。
注意,如果要使用输出重定向(>),则必须在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发布于 2015-06-01 00:31:07
那是一个图形程序。它不使用控制台。所以你不能。
如果您使用真正的程序,您会发现PKZip有命令行版本。https://www.pkware.com/software/pkzip
https://stackoverflow.com/questions/30563878
复制相似问题