より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

VBScriptはWScript.Echo でもメッセージボックス表示

oshiete.goo.ne.jp

会社でVbScriptを保守する機会がありました。

が、私は、VbScriptというのが不慣れで、一瞬見ただけで逃げ出したくなる人種。

ただ、メッセージボックスが表示される場所を調査することになりました。

メッセージボックスだったら

MsgBox "message",0,"title"

MsgBoxだろうと。

f:id:rimever:20190908165205p:plain

ですが、Grepしても全くヒットせず。

なんで、メッセージが出るんだ!とメッセージでGrepをして新しいことを知ったのでした。

というのも

WScript.Echo "message"

でもメッセージ表示になるようです。

f:id:rimever:20190908165228p:plain
キャプションはWindows Script Hostに。

Echoでしょ、Echoってコマンドラインに文字列表示する関数じゃんと思ったものですが、残念ながらそのようです。

MsgBoxではVBScriptの関数ですが、WScript.EchoはWindows Script Hostのオブジェクトを利用した関数という違いがあります。

これを標準文字列にしたい場合は、以下のように呼び出します。

cscript //nologo Program.vbs

f:id:rimever:20190908170255p:plain

学ばさせていただいたサイト

www.kanaya440.com

wsh.style-mods.net

home.a00.itscom.net