代码之家  ›  专栏  ›  技术社区  ›  Ned

为什么“shell”在VS6的vbscript中不起作用?

  •  1
  • Ned  · 技术社区  · 18 年前

    在Visual Studio 6的宏中,我想运行一个外部程序,因此键入了:

    shell("p4 open " + ActiveDocument.FullName)
    

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

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

    这是怎么回事?这胡说八道真的有必要吗?还是我错过了什么?

    4 回复  |  直到 11 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    AS lassevk 指出,vbscript不是VisualBasic。

    我相信vbscript中唯一的内置对象是wscript对象。

    WScript.Echo "Hello, World!"
    

    从文档

    wscript对象是Windows脚本宿主的根对象 对象模型层次结构。在调用它的 属性和方法,并且它始终可以从任何脚本文件中使用。

    其他所有内容都必须通过CreateObject调用创建。其中一些物体是 listed here .

    shell对象是 其他 如果要对其调用方法,则需要创建的对象。

    一个警告是,regexp是 某种程度上 内置,这样您就可以在vbscript中这样实例化regexp对象:

    Dim r as New RegExp
    
        2
  •  1
  •   Lasse V. Karlsen    18 年前

    vbscript不是Visual Basic。

        3
  •  0
  •   Bryan Roth    18 年前

    尝试一下:

    Shell "p4 open" & ActiveDocument.FullName
    
        4
  •  -1
  •   Joel Coehoorn    18 年前

    vb6使用&来连接字符串而不是+,您需要确保文件名在空格中用引号括起来。尝试如下:

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