组合目录和批处理文件以在一行中执行

时间:2013-11-28 17:42:52

标签: batch-file vbscript

如何组合一个目录(例如C:\ Program Files \ dir1),它位于变量中,来自installshield中的属性和批处理脚本test.bat,可以在一行中执行(C:\ Program Files \ DIR1 \ test.bat的)???我正在尝试以下但是徒劳无功。

    dim shell
    dim strInstallLocation, strbatch
    set shell=createobject("wscript.shell")
    strInstallLocation = """C:\Program Files\dir1"""
    strbatch = strInstallLocation &"""\test.bat"""
    shell.run strbatch
    set shell=nothing

我得到了一个类型不匹配的属性。我是这个vbscripting的新手。即使它是基本的,请帮助。

1 个答案:

答案 0 :(得分:1)

应该引用.Run的(第一个)参数来帮助shell正确解析文件规范。为此你可以使用:

Function qq(s) : qq = """" & s & """" : End Function

要从文件夹/路径和文件名构建文件规范,FileSystemObject提供.BuildPath方法。应该使用它来代替本地字符串操作(假设你在goFS中有一个FSO):

>> sFolder = "C:\Program Files\dir1"
>> sFile = "magic.bat"
>> sFSpec = goFS.BuildPath(sFolder, sFile)

现在一起:

>> sCmd = qq(sFSpec)
>> WScript.Echo sCmd
>>
"C:\Program Files\dir1\magic.bat"