• ベストアンサー

バッチファイルでファイルからパラメータを指定したいのですが。。。

CALL abc.bat [ ] で [ ] の部分にパラメータをファイルから指定することは出来るでしょうか? 単にそのファイルのパスを記述してもダメでした。

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

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

>#3で方法で。。。…改行されて出来てしまいます。 abc.batを def.exe[スペース] で改行しないでスペースの部分までの入力で保存しておけば、 改行されないで追加されます

kapran
質問者

お礼

出来ました。。。有り難うございました。

その他の回答 (7)

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

バッチファイルとしては、#3の方法でうまくいくと思います。 VBSでやるとすると dim fso, sh, fin dim para set fso=WScript.CreateObject("Scripting.FileSystemObject") set sh=WScript.CreateObject("WScript.Shell") set fin=fso.OpenTextFile("para.txt") para=fin.ReadLine fin.close sh.Run("def.exe " & para) '直接でない場合は、 sh.Run("abc.bat " & para)

kapran
質問者

補足

たびたびすいません。 VBAは(も)全く分かりません。(^_^; > バッチファイルとしては、#3の方法でうまくいくと思います。 #3で方法で。。。 tmp.batが def.exe http://www.yahoo.co.jp/ のように改行されて出来てしまいます。 改行されなければ動作しそうです。。。宜しくお願いします。

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

>win98です。 for /F構文は、 NT系列(XP含む)です。

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

>abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。 繰り返しになりますが、 para.txtの中身が URL だとして exec.batに for /F "tokens=*" %%i in (para.txt) do call abc.bat %%i としたら、 abc.batに def.exe %1 とすれば良いです。

kapran
質問者

補足

para.txtの中身が http://www.yahoo.co.jp/ のみです。 exec.batに for /F "tokens=*" %%i in (para.txt) do call abc.bat %%i abc.batに def.exe %1 で、 exec.bat の実行で”構文が違います”となります。 abc.batに def.exe http://www.yahoo.co.jp/ で、 abc.bat の実行で def.exe は正常に実行されます。 この期に及んで言うのもすいませんが、win98です。 対処はありますでしょうか? 宜しくお願い致します。

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

para.txtの中身が para1 para2 で call abc.bat para1 para2 としたい時 for /F "tokens=1,2" %%i in (para.txt) do call abc.bat %%i %%j とする パラメータの数が2個とか限られていない時は for /F "tokens=*" %%i in (para.txt) do call abc.bat %%i

kapran
質問者

お礼

有り難うございます みなさまのご回答は的確で大変参考になるものでした。 当方の理解不足で質問の仕方が悪かったと思います。 abc.bat は、def.exe を起動する為だけのものです。 その def.exe [ ] でパラメータを渡したいのです。 パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

kapran
質問者

補足

すみません。。。補足をお礼の欄に書いてしまいました。 abc.bat は、def.exe を起動する為だけのものです。 def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。 同じ事をバッチファイルで行いたいと言うことなのですが。。。 パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。 宜しくお願いします。

  • ballville
  • ベストアンサー率47% (233/487)
回答No.3

「file」というファイルの中身を arg1 arg2 ↑スペース となっているとすると echo abc.bat>tmp.bat type file>>tmp.bat call tmp.bat del /y tmp.bat

kapran
質問者

お礼

有り難うございます みなさまのご回答は的確で大変参考になるものでした。 当方の理解不足で質問の仕方が悪かったと思います。 abc.bat は、def.exe を起動する為だけのものです。 その def.exe [ ] でパラメータを渡したいのです。 パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

kapran
質問者

補足

すみません。。。補足をお礼の欄に書いてしまいました。 abc.bat は、def.exe を起動する為だけのものです。 def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。 同じ事をバッチファイルで行いたいと言うことなのですが。。。 パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。 宜しくお願いします。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

まず、このabc.batは君が作ったものかな? もしそうなら、次のバッチを作って試していただきたい。 -1.bat- @echo off echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 :next shift echo %0 %1 if "%0" == "" goto :end goto :next :end -2.bat- @echo off call 1.bat a b c d e f g h i j k l m n o p q r s t u v w x y z 1.batは、まず実行ファイル(バッチ名)と9個目までの引数を表示して、その後で一個ずつ引数を前に持ってきて表示するものだ。これが分かれば、バッチで引数を取る方法はバッチりだ。

kapran
質問者

お礼

有り難うございます。 基本的な使い方のヒントを沢山得られそうです。 渡す(指定する)パラメータは1個なのですが、それがその都度変わるためファイルから指定したいと思いました。 そのファイル更新⇒バッチ起動。。。という目論見です。(^_^;

kapran
質問者

補足

abc.bat は、def.exe を起動する為だけのものです。 def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。 同じ事をバッチファイルで行いたいと言うことなのですが。。。 パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。 宜しくお願いします。

  • ZENO888
  • ベストアンサー率49% (8944/18242)
回答No.1

abc.bat に記載されているコマンドに引数を指定すれば可能です。 例: abc.bat COPY %1 %2 CALL abc.bat C:\TEMP\BBB.TXT D:\TEMP http://forum.nifty.com/fpcu/dosvcmd/batch.htm

kapran
質問者

お礼

有り難うございます。 http://forum.nifty.com/fpcu/dosvcmd/batch.htm もとても参考になりそうです。

関連するQ&A