- ベストアンサー
バッチファイル
お世話になります。 バッチファイルを用いて、実行されるプログラムがあります。 私の作成したものではないので、どのようなやり取りが内部で行われているのかは、詳細はわかりません。 例えば、D:\Programフォルダーの中にプルグラムをインストールしたとすれば、引数を2つ指定して(例:aaaとbbb)、バッチファイル(test.bat)を以下のように実行すれば、プログラムは正常に作動します。 D:\Program>test aaa bbb しかし、以下の場合には、正常に作動しません。 C:\>D:\Program>test aaa bbb つまり、パスを含めて、バッチファイルを実行することは、このプログラムは許可してくれません。 ここで、例えば、VBなどを用いて、テキストボックスなどで引数を二つ指定して、実行ボタンをクリックすれば、必ず、D:\Program>test aaa bbbという状態で、バッチファイルが実行されるようにするには、どのようにすればよろしいでしょうか? もしご存知の方がいらっしゃいましたら、是非、ご教授願います。 以上、宜しくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
No.4の追加です。 何かの理由で「test.batを書き換え出来ない」と言う場合は、以下のようなバッチファイルを何処かに保存して、そのバッチファイルを呼び出しましょう。 @echo off D: CD \Program CALL test.bat %1 %2
その他の回答 (6)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#4>Shell("D:\Program\test.bat " & textBox1.text & " " textBox2.text) & が1個抜けてました Shell("D:\Program\test.bat " & textBox1.text & " " & textBox2.text)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>C:\>D:\Program>test aaa bbb C:\>D:\Program\test aaa bbb としてやりましょう >VBなどを用いて 実際には試してはいませんが・ Shell("D:\Program\test.bat " & textBox1.text & " " textBox2.text) みたいな感じでできるんじゃないでしょうか
お礼
はい、私もそう思いました。 しかし、おそらく、そのように実行すると、 C:\>D:\Program\test aaa bbb のようになるため、 正常に作動しないようでした。 回答、ありがとうございました。
- chie65536
- ベストアンサー率41% (2512/6032)
要は 「test.batは、カレントドライブがD:、カレントディレクトリが\Programになってないと、正常に動かない」 って事ですから、test.batの先頭に次の2行を追加しましょう。 D: CD \Program これで、test.batがパス付きで起動されても、test.bat自身が 「カレントドライブをD:に、カレントディレクトリを\Programに強制的に変えて、正常に動く」 ようになります。 「環境が変ると動かない」という、test.batの作り方が悪いだけの話なんですが「カレントドライブ」「カレントディレクトリ」が「実行に際して整えないと行けない『実行環境』の一部」だって事を判ってないプログラマが多過ぎですね。
- t_nojiri
- ベストアンサー率28% (595/2071)
#2です。ああ、プロンプト含めて書いてたとやっと理解しました。 ええと、該当のD:\Programを環境変数PATHにパス追加してやれば解決すると思われます。
お礼
回答、ありがとうございます。 先に述べましたように、質問にミスがあり、 すみませんでした。 教えていただいた方法をこれから試してみます。
- t_nojiri
- ベストアンサー率28% (595/2071)
>以下のように実行すれば、プログラムは正常に作動します。 >D:\Program>test aaa bbb D:\Program\test aaa bbb なら分かるけど。 C:\>D:\Program>test aaa bbb リダイレクトの場所間違えてるだけでは?
- yambejp
- ベストアンサー率51% (3827/7415)
test.batが編集できるなら あたまに「d:(改行)」としてやるだけで 動きそうな気がしますが・・・。
お礼
早速の回答ありがとうございます。 これから試してみます。 皆さんの回答を見ていて、思ったのですが、 私の質問に記述ミスがありました。 C:\>D:\Program>test aaa bbbは、 C:\>D:\Program\test aaa bbbでした。 どうもすみません。
お礼
chie65536さん、ありがとうございました。 No4の方法でも、No7の方法でも、正常に実行されました。 実は、ここ数日、一人で悩んでいたのですが、 当の本人は、コマンドプロンプトなど全く知らず、 ネットで検索しても、それらしいことが書いているWebもなく、本当に困っていました。 本当にありがとうございました。