VBS 运行不工作
Posted
技术标签:
【中文标题】VBS 运行不工作【英文标题】:VBS run not working 【发布时间】:2014-12-30 13:11:16 【问题描述】:我是 vbs 的菜鸟,这是一个脚本(来自 How to run a file on background using vbscript with launch options)。但是运行不起作用。
Option Explicit
Dim wshShell
Set WshShell = CreateObject("WScript.Shell")
Function qq(s) : qq = """" & s & """" : End Function
Sub mapF(a, f)
Dim i
For i = LBound(a) To UBound(a)
a(i) = f(a(i))
Next
End Sub
Dim sFSpec : sFSpec = "C:\Program Files\Pineapplesoft\Lost computer\lostcomputeraudio.bat"
Dim aParms : aParms = Split("1#/pi:pa po#last parm", "#")
mapF aParms, GetRef("qq")
Dim sCmd : sCmd = Join(Array( _
qq(sFSpec) _
, Join(aParms) _
))
WshShell.Run qq(sCmd)
【问题讨论】:
当你运行它时,我认为你正在向命令行添加额外的引号。 【参考方案1】:qq(sCmd)
正在返回这个:
""C:\Program Files\Pineapplesoft\Lost computer\lostcomputeraudio.bat" "1" "/pi:pa po" "last parm""
你想要:
"C:\Program Files\Pineapplesoft\Lost computer\lostcomputeraudio.bat" "1" "/pi:pa po" "last parm"
删除qq(sCmd)
函数,它应该可以工作。
Option Explicit
Dim wshShell
Set WshShell = CreateObject("WScript.Shell")
Function qq(s) : qq = """" & s & """" : End Function
Sub mapF(a, f)
Dim i
For i = LBound(a) To UBound(a)
a(i) = f(a(i))
Next
End Sub
Dim sFSpec : sFSpec = "C:\Program Files\Pineapplesoft\Lost computer\lostcomputeraudio.bat"
Dim aParms : aParms = Split("1#/pi:pa po#last parm", "#")
mapF aParms, GetRef("qq")
Dim sCmd : sCmd = Join(Array( _
qq(sFSpec) _
, Join(aParms) _
))
wshShell.Run sCmd
【讨论】:
我应该添加什么让它在后台运行? msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.84).aspx。你可以试试 wshShell.Run sCmd, 0, False 根据附件文章应该隐藏窗口。【参考方案2】:你可以这样运行Cmd
Set shell=CreateObject
Shell.Run("cmd.exe")
【讨论】:
不,你不能。即使对 CreateObject 使用正确的参数,运行cmd.exe
也没有任何意义。以上是关于VBS 运行不工作的主要内容,如果未能解决你的问题,请参考以下文章
Windows 2008 server R2激活客户端停止工作
iexpress 提取文件,然后从 exe 中运行 vbs 引用文件