質問

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

通報する

回答 (8件)

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

この回答へのお礼

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

バッチファイルとしては、#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)

この回答への補足

たびたびすいません。
VBAは(も)全く分かりません。(^_^;
> バッチファイルとしては、#3の方法でうまくいくと思います。
#3で方法で。。。
tmp.batが

def.exe
http://www.yahoo.co.jp/

のように改行されて出来てしまいます。
改行されなければ動作しそうです。。。宜しくお願いします。

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

>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
とすれば良いです。

この回答への補足

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です。
対処はありますでしょうか? 宜しくお願い致します。

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

この回答へのお礼

有り難うございます
みなさまのご回答は的確で大変参考になるものでした。
当方の理解不足で質問の仕方が悪かったと思います。

abc.bat は、def.exe を起動する為だけのものです。
その def.exe [ ] でパラメータを渡したいのです。

パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

この回答への補足

すみません。。。補足をお礼の欄に書いてしまいました。

abc.bat は、def.exe を起動する為だけのものです。
def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。

同じ事をバッチファイルで行いたいと言うことなのですが。。。

パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

宜しくお願いします。

「file」というファイルの中身を
arg1 arg2
↑スペース

となっているとすると

echo abc.bat>tmp.bat
type file>>tmp.bat
call tmp.bat
del /y tmp.bat

この回答へのお礼

有り難うございます
みなさまのご回答は的確で大変参考になるものでした。
当方の理解不足で質問の仕方が悪かったと思います。

abc.bat は、def.exe を起動する為だけのものです。
その def.exe [ ] でパラメータを渡したいのです。

パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

この回答への補足

すみません。。。補足をお礼の欄に書いてしまいました。

abc.bat は、def.exe を起動する為だけのものです。
def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。

同じ事をバッチファイルで行いたいと言うことなのですが。。。

パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

宜しくお願いします。

まず、この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個目までの引数を表示して、その後で一個ずつ引数を前に持ってきて表示するものだ。これが分かれば、バッチで引数を取る方法はバッチりだ。

この回答へのお礼

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

この回答への補足

abc.bat は、def.exe を起動する為だけのものです。
def.exe はコマンドラインから def.exe [ ] でパラメータを渡して実行できます。

同じ事をバッチファイルで行いたいと言うことなのですが。。。

パラメータは URL 1個で、その URL 1個を収容しているファイルを随時更新して、都度 abc.bat 起動のカタチから def.exe [URL] を実行したいと思っております。

宜しくお願いします。

abc.bat に記載されているコマンドに引数を指定すれば可能です。

例:
abc.bat
COPY %1 %2

CALL abc.bat C:\TEMP\BBB.TXT D:\TEMP


http://forum.nifty.com/fpcu/dosvcmd/batch.htm

この回答へのお礼

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

このQ&Aは役に立ちましたか?2 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

教えて!Firefox

より速く、より安全なウェブブラウザ「Firefox(ファイアーフォックス)」に関する疑問をみんなで解決。全くの初心者から上級者までFirefoxの魅力を十分に味わうために、教えて!gooのユーザーみんながお手伝いします。


新しく質問する

このカテゴリで人気のQ&Aランキング