• ベストアンサー

バッチファイル

お世話になります。 バッチファイルを用いて、実行されるプログラムがあります。 私の作成したものではないので、どのようなやり取りが内部で行われているのかは、詳細はわかりません。 例えば、D:\Programフォルダーの中にプルグラムをインストールしたとすれば、引数を2つ指定して(例:aaaとbbb)、バッチファイル(test.bat)を以下のように実行すれば、プログラムは正常に作動します。 D:\Program>test aaa bbb しかし、以下の場合には、正常に作動しません。 C:\>D:\Program>test aaa bbb つまり、パスを含めて、バッチファイルを実行することは、このプログラムは許可してくれません。 ここで、例えば、VBなどを用いて、テキストボックスなどで引数を二つ指定して、実行ボタンをクリックすれば、必ず、D:\Program>test aaa bbbという状態で、バッチファイルが実行されるようにするには、どのようにすればよろしいでしょうか? もしご存知の方がいらっしゃいましたら、是非、ご教授願います。 以上、宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.7

No.4の追加です。 何かの理由で「test.batを書き換え出来ない」と言う場合は、以下のようなバッチファイルを何処かに保存して、そのバッチファイルを呼び出しましょう。 @echo off D: CD \Program CALL test.bat %1 %2

T-HAM
質問者

お礼

chie65536さん、ありがとうございました。 No4の方法でも、No7の方法でも、正常に実行されました。 実は、ここ数日、一人で悩んでいたのですが、 当の本人は、コマンドプロンプトなど全く知らず、 ネットで検索しても、それらしいことが書いているWebもなく、本当に困っていました。 本当にありがとうございました。

その他の回答 (6)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

#4>Shell("D:\Program\test.bat " & textBox1.text & " " textBox2.text) & が1個抜けてました Shell("D:\Program\test.bat " & textBox1.text & " " & textBox2.text)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>C:\>D:\Program>test aaa bbb C:\>D:\Program\test aaa bbb としてやりましょう >VBなどを用いて 実際には試してはいませんが・ Shell("D:\Program\test.bat " & textBox1.text & " " textBox2.text) みたいな感じでできるんじゃないでしょうか

T-HAM
質問者

お礼

はい、私もそう思いました。 しかし、おそらく、そのように実行すると、 C:\>D:\Program\test aaa bbb のようになるため、 正常に作動しないようでした。 回答、ありがとうございました。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.4

要は 「test.batは、カレントドライブがD:、カレントディレクトリが\Programになってないと、正常に動かない」 って事ですから、test.batの先頭に次の2行を追加しましょう。 D: CD \Program これで、test.batがパス付きで起動されても、test.bat自身が 「カレントドライブをD:に、カレントディレクトリを\Programに強制的に変えて、正常に動く」 ようになります。 「環境が変ると動かない」という、test.batの作り方が悪いだけの話なんですが「カレントドライブ」「カレントディレクトリ」が「実行に際して整えないと行けない『実行環境』の一部」だって事を判ってないプログラマが多過ぎですね。

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.3

#2です。ああ、プロンプト含めて書いてたとやっと理解しました。 ええと、該当のD:\Programを環境変数PATHにパス追加してやれば解決すると思われます。

T-HAM
質問者

お礼

回答、ありがとうございます。 先に述べましたように、質問にミスがあり、 すみませんでした。 教えていただいた方法をこれから試してみます。

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.2

>以下のように実行すれば、プログラムは正常に作動します。 >D:\Program>test aaa bbb D:\Program\test aaa bbb なら分かるけど。 C:\>D:\Program>test aaa bbb リダイレクトの場所間違えてるだけでは?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

test.batが編集できるなら あたまに「d:(改行)」としてやるだけで 動きそうな気がしますが・・・。

T-HAM
質問者

お礼

早速の回答ありがとうございます。 これから試してみます。 皆さんの回答を見ていて、思ったのですが、 私の質問に記述ミスがありました。 C:\>D:\Program>test aaa bbbは、 C:\>D:\Program\test aaa bbbでした。 どうもすみません。

関連するQ&A