首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法记录WinZip命令行进程

无法记录WinZip命令行进程
EN

Stack Overflow用户
提问于 2015-05-31 23:46:29
回答 2查看 303关注 0票数 1

下面的vbscript测试代码通过WinZip命令行压缩了一些测试文件:

代码语言:javascript
复制
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返回的确切消息。

我尝试过几种方法:

  • 按照>中的建议,在命令行的末尾添加一个大于符号(>)的文件名。此方法不会在文件上写入任何内容。
  • 另外,我尝试获取shell执行的STDOUT和STDERR,但它返回一个空字符串。

有人知道我还能/应该尝试什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-01 09:30:00

正如@CheranShunmugavel在对另一个答案的评论中指出的,知识库文章指的是WinZip命令行实用程序。如果您想在命令行上使用WinZip,我强烈建议您获得该附加项,即使常规的WinZip可执行文件确实支持一些基本命令行参数

注意,如果要使用输出重定向(>),则必须在CMD中运行该命令,因为重定向是由命令解释器提供的。为了简化处理,我还建议使用Run方法而不是Exec方法,除非您需要从STDOUT和/或STDERR中以编程方式读取。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2015-06-01 00:31:07

那是一个图形程序。它不使用控制台。所以你不能。

如果您使用真正的程序,您会发现PKZip有命令行版本。https://www.pkware.com/software/pkzip

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30563878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档