或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

VBScript コマンドライン引数を取得

サンプルコード

$more arguments.vbs
Wscript.Echo "Wscript.Arguments.Count->" & Wscript.Arguments.Count
Wscript.Echo "Wscript.Arguments(0)   ->" & Wscript.Arguments(0)
Wscript.Echo "Wscript.Arguments(1)   ->" & Wscript.Arguments(1)
Wscript.Echo "Wscript.Arguments(2)   ->" & Wscript.Arguments(2)

Wscript.Argumentsオブジェクトを使えば取れるっぽい。それなりにオブジェクト指向っぽく見えるなぁ。。。

実行結果

$arguments.vbs 1 2 3

f:id:oneshotlife_tom:20130612231051j:plain
f:id:oneshotlife_tom:20130612231107j:plain
f:id:oneshotlife_tom:20130612231119j:plain
f:id:oneshotlife_tom:20130612231154j:plain

って、実行してはじめて気付いたんだが、DOS窓から実行しても、プロンプトに表示されるわけじゃなくて、Windowポップアップしてきて表示されるんだね・・・。

VBScriptの出力をプロンプトに行う

batスクリプト的にただ単純に、プロンプトに表示する場合は、以下のようになるようだ。実行方法が違う。cscript.exeを使うようだ。

$more arguments.vbs
Wscript.Echo "Wscript.Arguments.Count->" & Wscript.Arguments.Count
Wscript.Echo "Wscript.Arguments(0)   ->" & Wscript.Arguments(0)
Wscript.Echo "Wscript.Arguments(1)   ->" & Wscript.Arguments(1)
Wscript.Echo "Wscript.Arguments(2)   ->" & Wscript.Arguments(2)

$cscript.exe arguments.vbs 1 2 3
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Wscript.Arguments.Count->3
Wscript.Arguments(0)   ->1
Wscript.Arguments(1)   ->2
Wscript.Arguments(2)   ->3

ちょっとPythonちっくに近づいた気がした

スクリプト言語繋がりだからね。