Is it possible to run the VBScript file(.vbs&#

2020-02-11 07:34发布

问题:

I have 10 .vbs file and incorporated them into a single .vbs file namely Main.vbs.Now if I double click on the main.vbs,my script got started to run. But I am looking for anyway can I run the .vbs file from the web browser? So that no one need to go to the directory where the Main.vbs kept and double clicked on it.

My Main.VBS contents:

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

回答1:

Yes you can if you use Internet Exlorer, but you will have to keep your IE security settings low to run it and even then you could have a prompt to confirm. All depends on which version and SP of Windows, which security updates , which version of IE and which settings in IE.

I suggest taking a second look at why you would start a local script this way. You can easily make and distribute a shortcut that starts your script without hassle of settings and prompts.

Ik you need a User Interface you can use Vbscript build-in or you could use a .HTA file instead of a .html or .asp file, security is less an issue with these files.

example: test.html

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

and 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

When i load test.html i get two prompts and when i confirm i get the output.txt in c:\temp

And last here an example with a .hta file, save it as eg test.hta, alwyas use IE when using ActiveX or Vbscript

<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>

or

<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>


回答2:

You can expose a classic ASP page that includes your script files, execute them and report results to the browser.

Asp pages are served by IIS (depending on version you may need to configure ASP settings) and can be run from any browser.



回答3:

For VBSlover's purpose the best way would be to program a HTML Application (no need for the extra complexity of a web server, no security hassles as in a plain client .html script). Of course, just wrapping some HTML code around existing VBScript code would be fatal, you'll have to design a useful GUI and distribute the existing features into suitable event handlers. Definitely not a project that can be tackled by posting a barrage of questions here - some careful research of your own is a necessary starting point/pre-requisite.