【发布时间】:2014-09-29 13:58:20
【问题描述】:
我正在尝试使用 VBA Excel 中的 Shell 脚本在命令提示符下执行命令。当我在命令提示符下执行此命令时,它通过打印一个数字作为输出来工作。但是当我在脚本中调用相同的命令时,它不会在消息框中显示这个数字。
Sub Button6_Click()
Dim oShell As Object
Dim objExecObject As Object
Set oShell = CreateObject("WScript.Shell")
Set objExecObject = oShell.Exec("cmd /c convert test2.jpg -fill black +opaque white -fill white -opaque white -print %[fx:w*h*mean]")
MsgBox (objExecObject.StdOut.ReadAll)
End Sub
我认为问题在于Exec 函数中的参数,因为有多个单词。所以我通过连接一个字符串来尝试以下操作,如图所示。但这也不起作用。
Dim command As String
command = "convert test2.jpg -fill black +opaque white -fill white -opaque white -print %[fx:w*h*mean] null:"
Set objExecObject = oShell.Exec("cmd /c " & command)
似乎没有运行时错误,消息框总是返回空而不打印数字。澄清一下:convert 命令是 ImageMagick 提供的功能。
请告诉我如何在命令提示符下运行转换命令并在消息框中打印命令提示符的输出。
【问题讨论】:
-
这行得通。设置 objExecObject = oShell.Exec("cmd /c 转换 test2.jpg -fill black +opaque white -fill white -opaque white -print %[fx:whmean] null:") null在命令的最后是问题。还要确保文件的路径是绝对的,在我的情况下这不是问题。
标签: vba vbscript command-prompt wsh windows-scripting