VBScript-外部コマンドを実行する



VBSから外部コマンドを実行する。

WshShellを利用する。

VBScriptからコマンド実行するには、WshShellクラスのrunメソッドかexecメソッドを使用します。


runメソッドとexecメソッドの違い

runメソッドとexecメソッドの違いは以下の通りです。


runメソッドのスクリプトサンプル

サンプル1

確認ダイアログを表示してから、バッチファイルを実行する。

Option Explicit

Dim rc
dim objWShell

rc = MsgBox("起動してよろしいですか?", vbYesNo)
If rc = vbYes Then
    Set objShell = WScript.CreateObject("WScript.Shell")
    objShell.Run "%comspec% /c .\start_cmd.bat"
    Set objShell = Nothing
End If

サンプル2

単純にコマンドを実行する

strCmd = "%comspec% /c .\start_cmd.bat"
Set objWshShell = WScript.CreateObject("WScript.Shell")
RC = objWshShell.Run(strCmd, 0, True)
WScript.Echo "ReturnCode: " & RC

execメソッドのスクリプトサンプル

標準出力と標準エラー出力を取得する。

Dim WshShell, outExec, StdOut, StdErr
Dim strCmd, szStr

strCmd = "%comspec% /c .\start_cmd.bat"

Set WshShell = CreateObject("WScript.Shell")
Set outExec = WshShell.Exec(strCmd)
Set StdOut = outExec.StdOut
Set StdErr = outExec.StdErr

szStr = "STDOUT" & vbCrLf
Do While Not StdOut.AtEndOfStream
   szStr = szStr & StdOut.ReadLine() &vbCrLf
Loop
WScript.Echo szStr

szStr = "STDERR" & vbCrLf
Do While Not StdErr.AtEndOfStream
   szStr = szStr & StdErr.ReadLine() &vbCrLf
Loop
WScript.Echo szStr

関連ページ



スポンサード リンク