'NOTE: ' "cscript //H:cscript" して使うと便利 '========================================================== ' 初期化。引数チェック。 '========================================================== Dim objShell, zmc3 Set objShell = WScript.CreateObject("WScript.Shell") Set objArgs = WScript.Arguments If objArgs.count = 0 THen WScript.Echo "ERROR : An argument needed" WScript.Quit End If '========================================================== ' ZMC3 の起動 '========================================================== Set zmc3 = objShell.Exec("zmc3 " & objArgs(0)) zoutput = "" 'STDOUT を読み込む Do While True If Not zmc3.StdOut.AtEndOfStream Then zoutput = zoutput & zmc3.StdOut.Read(1) Else Exit Do End If Loop 'STDERR を読み込む Do While True If Not zmc3.StdErr.AtEndOfStream Then zoutput = zoutput & zmc3.StdErr.Read(1) Else Exit Do End If Loop WScript.Echo zoutput 'プロセス終了を待つ。(終了後でないと ExitCode が正確に取れない) Do While zmc3.Status = 0 WScript.Sleep 100 Loop ' 終了コードの判定 IF zmc3.ExitCode <> 0 Then WScript.Quit End If '========================================================== ' Z2M3 の起動 '========================================================== Set z2m3 = objShell.Exec("z2m3 " & objArgs(0)) zoutput = "" 'STDOUT を読み込む Do While True If Not z2m3.StdOut.AtEndOfStream Then zoutput = zoutput & z2m3.StdOut.Read(1) Else Exit Do End If Loop 'STDERR を読み込む Do While True If Not z2m3.StdErr.AtEndOfStream Then zoutput = zoutput & z2m3.StdErr.Read(1) Else Exit Do End If Loop WScript.Echo zoutput 'プロセス終了を待つ。(終了後でないと ExitCode が正確に取れない) Do While z2m3.Status = 0 WScript.Sleep 100 Loop ' 終了コードの判定 IF z2m3.ExitCode <> 0 Then WScript.Quit End If '========================================================== ' MIDI演奏のスタート '========================================================== objShell.Exec("cmd.exe /c start " & objArgs(0) & ".mid")