如何在不打开其他命令提示符的情况下从批处理文件调用VbScript

JCh*_*han 4 windows vbscript batch-file

我有一个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 & "\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) 
Run Code Online (Sandbox Code Playgroud)

创建了一个名为Run.bat的批处理文件,并在其中添加了以下代码.

    @echo off

    start "C:\\Users\\guest\\Desktop\\123\\MyScript.vbs"
Run Code Online (Sandbox Code Playgroud)

当我尝试通过命令提示符执行批处理文件时,打开另一个命令提示符.

Alv*_*ong 11

rem This is the command line version
cscript "C:\Users\guest\Desktop\123\MyScript.vbs"
Run Code Online (Sandbox Code Playgroud)

要么

rem This is the windowed version
wscript "C:\Users\guest\Desktop\123\MyScript.vbs"
Run Code Online (Sandbox Code Playgroud)

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

Windows/DOS批处理文件不需要\像*nix那样转义.

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