2012年01月22日

VBScript(WSH) を使って Linux のパスを入力するには

VBScript(WSH) のスクリプトから、コマンドラインのパラメーターを取得するには、WScript.Arguments を使います。 コマンドラインの / から始まるオプションを取得するには、WScript.Arguments.Named を使います。

たとえば、コマンドラインに入力した内容が、

cscript sample.vbs /option:123 C:\folder\file.txt

であったときに、スクリプト

option_value = WScript.Arguments.Named.Item( "option" )
param1 = WScript.Arguments.Unnamed( 0 )

を記述すれば、option_value 変数に "123" という文字列が入り、param1 変数に、"C:\folder\file.txt" が入ります。

オプションが / から始まるのは、MS-DOS や Windows のコマンド・プロンプトの仕様に準拠しているわけですが、これが、Linux のパスの仕様に衝突してしまっています。 たとえば、

cscript sample.vbs /option:123 /folder/file.txt

とすると、

path = WScript.Arguments.Unnamed( 0 )

の path 変数に "/folder/file.txt" は、入りません。 また、どのようなパスでも取得できるようにしなければならないため、次のようなスクリプトを書くわけにはいきません。

option_value = WScript.Arguments.Named.Item("folder")

では、Windows のコマンドプロンプトに、Linux のパスを入力するには、どうしたらいいのでしょうか。 それは、Linux のパスを入力するオプションを用意することです。 たとえば、

cscript sample.vbs /option:123 /path:/folder/file.txt

と入力するときは、スクリプトを

option_value = WScript.Arguments.Named.Item( "option" )
path = WScript.Arguments.Named.Item( "path" )

と記述すれば、path に "/folder/file.txt" が入ります。

sage_p at 22:39│Comments(0)TrackBack(0)プログラミング 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔