我有一个VBScript文件,我正试图从批处理文件中调用它。下面的代码我处理到一个记事本上,并保存为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 & "rootcimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:rootcimv2:Win32_Process")
errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID)
创建了一个名为Run.bat的批处理文件,并在其中添加了以下代码。
@echo off
start "C:\Users\guest\Desktop\123\MyScript.vbs"
当我试图通过命令提示符执行批处理文件时,会打开另一个命令提示符。
rem This is the command line version
cscript "C:UsersguestDesktop123MyScript.vbs"
或
rem This is the windowed version
wscript "C:UsersguestDesktop123MyScript.vbs"
您还可以添加选项//e:vbscript
,以确保脚本引擎将您的脚本识别为vbscript。
Windows/DOS批处理文件不需要像*nix那样转义。
您仍然可以使用"C:UsersguestDesktop123MyScript.vbs"
,但这需要用户具有与wscript
关联的*.vbs
。
如果要修复vbs关联,请键入
regsvr32 vbscript.dll
regsvr32 jscript.dll
regsvr32 wshext.dll
regsvr32 wshom.ocx
regsvr32 wshcon.dll
regsvr32 scrrun.dll
此外,如果您由于管理原因无法使用vbs,请将脚本转换为vb.net程序,该程序设计简单,耗时5分钟。
最大的区别在于,函数和子函数都是使用括号而不仅仅是函数来调用的。
因此,编译器安装在所有安装了.NET的计算机上。
请参阅本文,了解如何制作.NET exe。请注意,此示例适用于脚本主机。你不能使用这个,你必须把你的vbs代码作为.NET代码放进去。
如何将VBScript转换为可执行文件(EXE)?