为什么'shell'在VS6中的VBscript中不起作用?

时间:2008-08-21 15:39:08

标签: visual-studio vbscript

在Visual Studio 6的宏中,我想运行一个外部程序,所以输入了:

shell("p4 open " + ActiveDocument.FullName)

这给了我一个类型不匹配的运行时错误。我最不得不输入的是:

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)

这里发生了什么?那废话真的是必要的还是我错过了什么?

4 个答案:

答案 0 :(得分:1)

VBScript不是Visual Basic。

答案 1 :(得分:1)

正如lassevk指出的那样,VBScript不是Visual Basic。

我相信VBScript中唯一内置的对象是WScript对象。

WScript.Echo "Hello, World!"

来自文档

  

WScript对象是Windows脚本宿主的根对象   对象模型层次结构它永远不需要在调用它之前进行实例化   属性和方法,它始终可以从任何脚本文件中获得。

必须通过CreateObject调用创建其他所有内容。其中一些对象是listed here

如果要在其上调用方法,则Shell对象是您需要创建的其他对象之一。

有一点需要注意,RegExp是内置的类型的,因为您可以在VBScript中实例化一个RegExp对象:

Dim r as New RegExp

答案 2 :(得分:0)

尝试一下:

Shell "p4 open" & ActiveDocument.FullName

答案 3 :(得分:-1)

VB6使用&连接字符串而不是+,并且你要确保文件名在空格的情况下用引号括起来。试试这样:

Shell "p4 open """ & ActiveDocument.FullName & """"