BATファイルから複数のパラメータを受け取るには?

解決


ミニー  2004-08-04 19:37:26  No: 84932  IP: [192.*.*.*]

BATファイルから、VBで作成したEXEファイルを実行したいのです。
このときBATファイルから4つのパラメータを渡して、それをVBのPGで受け取って処理を行いたいのですが、Commandと記述しても何も受け取ってくれません。何か記述が足りないのでしょうか?

ちなみにPGで行いたい処理というのは、受け取ったパラメータを内容の一部としたINIファイルを作る処理です。

説明が分かりにくいかもしれませんが、どなたか分かる方がいらっしゃいましたらご教授をお願いします。

編集    削除
Max  2004-08-04 20:00:35  No: 84933  IP: [192.*.*.*]

何をどうやって何も受け取ってくれないと判断したのでしょうか?
それが分かれば原因も絞られてくると思いますよ。

正常にバッチファイルからパラメータ付で起動されれば必ずCommandに
格納されますので。

編集    削除
ミニー  2004-08-04 20:41:42  No: 84934  IP: [192.*.*.*]

早急なアドバイスをいただき、ありがとうございます!

1個のパラメータなら受け取れるのですが、複数の場合はどうすればいいのでしょうか。
スペースで区切って、配列に格納されるのでしょうか?
それともカンマで区切って1個のパラメータとして受け取って、あとでSplitで分ければいいのでしょうか?

どうかよろしくお願いします。

編集    削除
魔界の仮面弁士  2004-08-04 20:56:48  No: 84935  IP: [192.*.*.*]

> スペースで区切って、配列に格納されるのでしょうか?
Command()は、常に単一の文字列として格納されます。

コマンドラインを配列として受け取りたいのであれば、Command()のかわりに、
  Sub Main(ByVal CmdArgs() As String)
のように、 Mainプロシージャの引数として受け取るか、もしくは、
  Dim cmds() As String = System.Environment.GetCommandLineArgs()
のように、EnvironmentクラスのGetCommandLineArgsメソッドを使って下さい。

VB.NETではなく、VB6以下の場合には、配列にする機能はありませんので、
Command()関数の結果を、(Split等で分割するなどして)自力で分解する必要があります。

編集    削除
ミニー  2004-08-04 23:13:45  No: 84936  IP: [192.*.*.*]

アドバイスのおかげで、問題が解決しました。

はじめにパラメータを受け取れなかったのは、EXEファイルで実行したいと言っておきながらEXEファイルを作成してなかったことが原因でした(初歩的なことなのですが)。

次に、複数のパラメータを受け取れなかったのは、私の使っているものがVB6.0だった為、配列で受け取れなかったからでした。

解決法としては、パラメータをカンマで区切って一つのパラメータとして受け取り、後でSplitで分割して配列に格納し使用しました。

本当に助かりました。Maxさん、魔界の仮面弁士さん、本当にありがとうございました。

編集    削除