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

File 从特殊(临时)文件夹打开文件,file,vbscript,temp,File,Vbscript,Temp,嗯,那可不太好。我想使用VBScript打开%TMP%目录中的某个文件 WScript.CreateObject("WScript.Shell").Run(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)+"\OpenMe.txt") 它在Windows7上运行良好,但在XP上不行,因为临时文件夹路径中有一个空间 一些教程建议使用引号(“”),但我不知道如何使用。只需将双引号连接到路径字符串的开头和结尾

嗯,那可不太好。我想使用VBScript打开
%TMP%
目录中的某个文件

WScript.CreateObject("WScript.Shell").Run(WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)+"\OpenMe.txt")
它在Windows7上运行良好,但在XP上不行,因为临时文件夹路径中有一个空间


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

只需将双引号连接到路径字符串的开头和结尾。由于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)

太好了。你能帮我在vbs开始“C:\Users\Denis\AppData\Local\Temp\OpenMe.txt”中创建类似的内容吗?其中“C:\Users\Denis\AppData\Local\Temp\OpenMe.txt”应该从WScript.CreateObject(“WScript.Shell”).Run(Chr(34)+WScript.CreateObject(“Scripting.FileSystemObject”).GetSpecialFolder(2)+“\OpenMe.txt”我想将其写入批处理文件为什么?如果仍要使用批处理,请将
start”“%TEMP%\OpenMe.txt”
放入批处理文件中。