vbs中,如果需要运行的程序中带有空格,按照通常的方式往往会提示错误,其实有两种形式不同的解决方法:
- 在应用程序前后分别加三个双引号,代码如下:
- Set wshell=CreateObject("WScript.Shell")
- wshell.Run """C:/Program Files/360/360se/360se.exe""",5,True
- Set wshell = Nothing
Set wshell=CreateObject("WScript.Shell") wshell.Run """C:/Program Files/360/360se/360se.exe""",5,True Set wshell = Nothing
- 使用chr(34)对字符串加引号,代码如下:
- temp="C:/Program Files/360/360se3/360se.exe"
- path = Chr(34) & temp & Chr(34)
- Set wshell=CreateObject("WScript.Shell")
- wshell.Run path,1,True
- Set wshell = Nothing
temp="C:/Program Files/360/360se3/360se.exe" path = Chr(34) & temp & Chr(34) Set wshell=CreateObject("WScript.Shell") wshell.Run path,1,True Set wshell = Nothing
3. 为了增加可读性,使用一种定义常量的方式,代码如下:
- Public Const vbQuote = """"
- temp="C:/Program Files/360/360se3/360se.exe"
- path = vbQuote & temp & vbQuote
- Set wshell=CreateObject("WScript.Shell")
- wshell.Run path,1,True
- Set wshell = Nothing
Public Const vbQuote = """" temp="C:/Program Files/360/360se3/360se.exe" path = vbQuote & temp & vbQuote Set wshell=CreateObject("WScript.Shell") wshell.Run path,1,True Set wshell = Nothing
一些解释:
- 因为vbs将双引号视为一个值的容器,所以你如果需要使用双引号作为一个值使用,那么需要在前后使用一个双引号来说明。
- 而Chr(integer i)则是返回ascii码表中i对应的字符,34在ascii码表中对应双引号。
技术改变世界! --狂诗绝剑