BATファイルから、VBで作成したEXEファイルを実行したいのです。
このときBATファイルから4つのパラメータを渡して、それをVBのPGで受け取って処理を行いたいのですが、Commandと記述しても何も受け取ってくれません。何か記述が足りないのでしょうか?
ちなみにPGで行いたい処理というのは、受け取ったパラメータを内容の一部としたINIファイルを作る処理です。
説明が分かりにくいかもしれませんが、どなたか分かる方がいらっしゃいましたらご教授をお願いします。
何をどうやって何も受け取ってくれないと判断したのでしょうか?
それが分かれば原因も絞られてくると思いますよ。
正常にバッチファイルからパラメータ付で起動されれば必ずCommandに
格納されますので。
早急なアドバイスをいただき、ありがとうございます!
1個のパラメータなら受け取れるのですが、複数の場合はどうすればいいのでしょうか。
スペースで区切って、配列に格納されるのでしょうか?
それともカンマで区切って1個のパラメータとして受け取って、あとでSplitで分ければいいのでしょうか?
どうかよろしくお願いします。
> スペースで区切って、配列に格納されるのでしょうか?
Command()は、常に単一の文字列として格納されます。
コマンドラインを配列として受け取りたいのであれば、Command()のかわりに、
Sub Main(ByVal CmdArgs() As String)
のように、 Mainプロシージャの引数として受け取るか、もしくは、
Dim cmds() As String = System.Environment.GetCommandLineArgs()
のように、EnvironmentクラスのGetCommandLineArgsメソッドを使って下さい。
VB.NETではなく、VB6以下の場合には、配列にする機能はありませんので、
Command()関数の結果を、(Split等で分割するなどして)自力で分解する必要があります。
アドバイスのおかげで、問題が解決しました。
はじめにパラメータを受け取れなかったのは、EXEファイルで実行したいと言っておきながらEXEファイルを作成してなかったことが原因でした(初歩的なことなのですが)。
次に、複数のパラメータを受け取れなかったのは、私の使っているものがVB6.0だった為、配列で受け取れなかったからでした。
解決法としては、パラメータをカンマで区切って一つのパラメータとして受け取り、後でSplitで分割して配列に格納し使用しました。
本当に助かりました。Maxさん、魔界の仮面弁士さん、本当にありがとうございました。