Windows 11中如何在VBScript里结合变量使用WshShell Run方法?
问题分析与解决
你的问题出在路径的引号包裹格式错误:
错误原因
你通过chr(34)拼接出的变量Sexy包含了三层双引号("""..\Src and Dst.txt"""),而WshShell.Run对带空格的路径只需要一对双引号包裹即可。系统无法识别三层引号的路径格式,因此默认打开了“此电脑”。
对比你注释掉的正确代码:"""..\Src and Dst.txt"""在VBScript中,两个连续双引号会被解析为一个实际的双引号,所以最终传递给Run的是"..\Src and Dst.txt",这是符合要求的格式。
修正后的代码
方式1:使用chr(34)拼接
Dim Sexy,WshShell3,fil Set WshShell3 = WScript.CreateObject("WScript.Shell") fil = ".\Src and Dst.txt" ' 仅用一对双引号包裹路径 Sexy = chr(34) + fil + chr(34) Wscript.Echo Sexy WshShell3.Run Sexy ' 现在会正确打开目标文本文件 Set WshShell3 = Nothing Wscript.Quit
方式2:使用VBScript原生双引号转义
不用chr(34),直接用连续双引号表示单个实际双引号:
Dim Sexy,WshShell3,fil Set WshShell3 = WScript.CreateObject("WScript.Shell") fil = ".\Src and Dst.txt" ' 四个双引号解析为两个实际双引号,包裹路径后就是正确格式 Sexy = """" & fil & """" Wscript.Echo Sexy WshShell3.Run Sexy Set WshShell3 = Nothing Wscript.Quit
内容的提问来源于stack exchange,提问作者user21932362
相关产品推荐
相关产品推荐

