%TMP%
目录中的某个文件和VBScript
WScript.CreateObject("WScript.Shell").Run(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)+"\OpenMe.txt")
它在Windows 7上工作正常,但在XP上没有,因为临时文件夹路径中有一个空格。
有些教程建议使用引号(""
),但我不知道如何。
答案 0 :(得分:1)
简单地将双引号连接到路径字符串的开头和结尾。由于VBScript对字符串文字使用双引号,因此需要通过ASCII代码(Chr(34)
)或在字符串文字(""""
)中放置两个后续双引号来指定它们。加倍逃脱双重报价。
WScript.CreateObject("WScript.Shell").Run(Chr(34)+WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)+"\OpenMe.txt"+Chr(34))
更一般地说,您应该使用连接运算符(&
)而不是加法运算符(+
)。尽管后者在大多数情况下都能工作,但是有一些边缘情况会产生错误。此外,避免嵌套方法调用,通过BuildPath
方法构建路径,并可能定义引用函数将使代码更清晰,更易于理解和维护。
Function qq(s)
qq = Chr(34) & s & Chr(34)
End Function
Set fso = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
tempfolder = fso.GetSpecialFolder(2)
path = fso.BuildPath(tempfolder, "OpenMe.txt")
sh.Run qq(path)