【发布时间】:2011-06-09 05:12:52
【问题描述】:
什么是 stackoverflow 批准(因此是正确的)方法来强制 VBS 使用 cscript 而不是 wscript 运行 - 无论用户尝试什么?
快速的 Google 搜索显示了很多示例,但其中一些根本不起作用,而那些通常无法处理它可能已经与参数一起运行的事实,所以我很想知道什么是最好的方式是。
这是一个不处理参数的例子:
sExecutable = LCase(Mid(Wscript.FullName, InstrRev(Wscript.FullName,"\")+1))
If sExecutable <> "cscript.exe" Then
Set oShell = CreateObject("wscript.shell")
oShell.Run "cscript.exe """ & Wscript.ScriptFullName & """"
Wscript.Quit
End If
我明白这可能很容易修改以处理参数,但意识到这可能不是解决问题的最佳方法。
背景:我正在编写一个脚本,它可以通过双击或(很可能)从 DOS 批处理文件或作为计划任务运行。它可以包含一个或多个可选的命令行参数。
【问题讨论】:
-
添加对 WScript.Arguments 的处理,然后您就设置好了。
-
@Kyle:听起来像是对我的回答而不是评论。
-
好像是你自己回答的,我只是确认一下。
-
@Kyle:你说得对,但我想知道以这种方式查看 Wscript.FullName 的整个方法是否是最好的做法。或者引用 Perl,有不止一种方法可以做到……也许我的不是最好的?
-
我想不出其他方法。