我有 10 个 .vbs 文件并将它们合并到一个 .vbs 文件中,即 Main.vbs。现在如果我双击 main.vbs,我的脚本就开始运行了。但我无论如何都在寻找可以从网络浏览器运行 .vbs 文件吗?这样就没有人需要去到 Main.vbs 所在的目录并双击它。

我的 Main.VBS 内容:

Dim oShell : Set oShell = WScript.CreateObject ("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
oShell.CurrentDirectory = FSO.GetFile(Wscript.ScriptFullName).ParentFolder
oShell.run "A.VBS", 1, True
oShell.run "B.VBS", 1, True
oShell.run "C.VBS", 1, True
oShell.run "D.VBS", 1, True

最佳答案

是的,如果您使用 Internet Exlorer,则可以,但是您必须将 IE 安全设​​置保持在较低的水平才能运行它,即使这样您也可能会收到确认提示。
一切都取决于 Windows 的哪个版本和 SP、哪个安全更新、哪个版本的 IE 以及 IE 中的哪些设置。

我建议再看看为什么要以这种方式启动本地脚本。您可以轻松制作和分发启动脚本的快捷方式,而无需进行设置和提示。

如果您需要一个用户界面,您可以使用 Vbscript 内置文件,或者您可以使用 .HTA 文件而不是 .html 或 .asp 文件,这些文件的安全性问题不大。

示例:test.html

<script type="text/vbscript" src="c:\temp\test.vbs"></script>

和 test.vbs
Const ForReading = 1, ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set writefile = fso.OpenTextFile("c:\temp\output.txt", ForWriting, True)
writefile.write "test"
writefile.close

当我加载 test.html 时,我得到两个提示,当我确认我在 c:\temp 中得到 output.txt

最后这里是一个带有 .hta 文件的示例,将其保存为例如 test.hta,在使用 ActiveX 或 Vbscript 时总是使用 IE
<HTML>
<HEAD>
<SCRIPT language="VBScript">
<!--
Const ForReading = 1, ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set writefile = fso.OpenTextFile("c:\temp\output.txt", ForWriting, True)
writefile.write "test"
writefile.close
'-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

或者
<HTML>
<HEAD>
<script type="text/vbscript">
  sub test
    const runminimized = 7
    const dont_wait_for_end = false
    Set wshShell = CreateObject("WScript.Shell")
    WshShell.Run "c:\temp\test.vbs",runminimized, dont_wait_for_end
  end sub
</script>
</HEAD>
<BODY>
  these are the instructions
  <button onclick="vbscript:test" >Run the script</button>
</BODY>
</HTML>

关于internet-explorer - 是否可以从浏览器运行 VBScript 文件(.vbs)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14044561/

10-11 22:39