|
749) FOR文のBAT化 ぎゅう 2003/10/29(水) 14:56 |
|
こんにちわ 初歩的な質問で申し訳ないのですがご存知の方教えてください。 今下記のような、コマンドをコマンドプロンプトより実行すると正常に実行できます。 FOR /L %i IN (01,1,47) DO sqlplus dbo2/***@test01 @C:\WORK\対応表\20030925\対応表作成コマンド群\spool_0011_AC.sql %i ところが、このコマンドをバッチファイルにしてバッチを実行しようとすると、コマンドプロンプトがほんの一瞬表示されたきりで、内容が実行されません。 どのように指定したらバッチファイルとして実行することができるのでしょうか? よろしく願いいたします。 |
|
751) Re:FOR文のBAT化 ふぇむ 2003/10/29(水) 16:04 |
|
>今下記のような、コマンドをコマンドプロンプトより実行すると正常に実行できます。 >FOR /L %i IN (01,1,47) DO sqlplus dbo2/***@test01 @C:\WORK\対応表\20030925\対応表作成コマンド群\spool_0011_AC.sql %i > >ところが、このコマンドをバッチファイルにしてバッチを実行しようとすると、コマンドプロンプトがほんの一瞬表示されたきりで、内容が実行されません。 バッチファイルにする時は、for 文の %i のような変数は %%i と % を2つ重ねないといけませんが、その修正はなされていますでしょうか。 また、「一瞬で消える」ということはマウスのダブルクリックで起動されています? そうではなくて、コマンドプロンプト上で実行すると、標準出力も標準エラー出力も画面上に残ると思います。 また、 バッチファイル > ログファイル 2>&1 のように起動する(またはそのようなもう1段外側のバッチをつくる)とすると、標準出力も標準エラー出力もログファイルに残りますよ。それらを見ると、何 が起こっているのかわかるのではないでしょうか(もし内部で @echo off などしているならば、それもはずした方がよい)。 |
|
752) Re2:FOR文のBAT化 ぎゅう 2003/10/29(水) 16:28 |
|
ありがとうございました。 %を重ねたところ、うまく動くようになりました。 %%を重ねる必要があるということを知りませんでした。 またログの出し方も教えていただけて大変助かりました。 >>今下記のような、コマンドをコマンドプロンプトより実行すると正常に実行できます。 >>FOR /L %i IN (01,1,47) DO sqlplus dbo2/***@test01 @C:\WORK\対応表\20030925\対応表作成コマンド群\spool_0011_AC.sql %i >> >>ところが、このコマンドをバッチファイルにしてバッチを実行しようとすると、コマンドプロンプトがほんの一瞬表示されたきりで、内容が実行されません。 > >バッチファイルにする時は、for 文の %i のような変数は %%i と % を2つ重ねないといけませんが、その修正はなされていますでしょうか。 > >また、「一瞬で消える」ということはマウスのダブルクリックで起動されています? そうではなくて、コマンドプロンプト上で実行すると、標準出力も標準エラー出力も画面上に残ると思います。 > >また、 > >バッチファイル > ログファイル 2>&1 > >のように起動する(またはそのようなもう1段外側のバッチをつくる)とすると、標準出力も標準エラー出力もログファイルに残りますよ。それらを見ると、 何が起こっているのかわかるのではないでしょうか(もし内部で @echo off などしているならば、それもはずした方がよい)。 > > > |