如何从batch file中调用VbScript而不打开其他命令提示符

我有一个VBScript文件,我试图从一个batch file调用。 下面的代码我应对记事本并保存为MyScript.vbs

(http://gallery.technet.microsoft.com/scriptcenter/8bbed56f-a7aa-491f-a296-687dd96098a3#content)

Const HIDDEN_WINDOW = 12 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = HIDDEN_WINDOW Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID) 

创build一个名为Run.bat的batch file,并在其中添加下面的代码。

  @echo off start "C:\\Users\\guest\\Desktop\\123\\MyScript.vbs" 

当我尝试通过命令提示符执行batch file时,会打开另一个命令提示符。

 rem This is the command line version cscript "C:\Users\guest\Desktop\123\MyScript.vbs" 

要么

 rem This is the windowed version wscript "C:\Users\guest\Desktop\123\MyScript.vbs" 

您还可以添加选项//e:vbscript ,以确保脚本引擎将脚本识别为vbscript。

Windows / DOS批处理文件不需要转义\ like * nix。

您仍然可以使用"C:\Users\guest\Desktop\123\MyScript.vbs" ,但这需要用户将*.vbs关联到wscript

如果你想修复vbs关联类型

 regsvr32 vbscript.dll regsvr32 jscript.dll regsvr32 wshext.dll regsvr32 wshom.ocx regsvr32 wshcon.dll regsvr32 scrrun.dll 

另外,如果由于管理而无法使用vbs,则将脚本转换为vb.net程序,该程序设计简单,很容易,需要5分钟。

很大的区别是函数和subs都被称为使用括号,而不仅仅是函数。

所以编译器安装在安装了.NET的所有计算机上。

请参阅这篇文章,了解如何制作.NET EXE文件。 请注意,示例适用于脚本主机。 你不能使用这个,你必须把你的vbs代码作为.NET代码。

如何将VBScript转换为可执行(EXE)文件?