从特殊(临时)文件夹中打开文件

时间:2015-11-26 22:10:14

标签: file vbscript temp

嗯,那不是那么甜蜜。我想使用

打开%TMP%目录中的某个文件和VBScript
WScript.CreateObject("WScript.Shell").Run(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)+"\OpenMe.txt")

它在Windows 7上工作正常,但在XP上没有,因为临时文件夹路径中有一个空格。

有些教程建议使用引号(""),但我不知道如何。

1 个答案:

答案 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)