web-dev-qa-db-ja.com

追加のコマンドプロンプトを開かずにバッチファイルからVbScriptを呼び出す方法

バッチファイルから呼び出そうとしている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.batという名前のバッチファイルを作成し、その中に以下のコードを追加しました。

    @echo off

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

コマンドPromptを使用してバッチファイルを実行しようとすると、別のコマンドPromptが開きます。

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

OR

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

オプション//e:vbscriptを追加して、スクリプトエンジンがスクリプトをvbscriptとして認識できるようにすることもできます。

Windows/DOSバッチファイルでは、* nixのように\をエスケープする必要はありません。

"C:\Users\guest\Desktop\123\MyScript.vbs"は引き続き使用できますが、これには、ユーザーがwscriptに関連付けられた*.vbsを持っている必要があります。

11
Alvin Wong

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)ファイルに変換するにはどうすればよいですか?

0
David Candy