0

私はこのようなことをするバッチファイルを持っています

for %%a in (1 2 3 4 5) do dir > %%a.output

%%aただ私に与える.

変数の値を使用し%%aてファイル名 (例: 1.output、2.output) を割り当てるにはどうすればよいですか?

4

3 に答える 3

2

変数を囲む必要があります。

for %a in (1 2 3 4 5) do dir > %a%.output
于 2009-04-21T18:45:22.267 に答える
1

あなたのコマンド構文は私には正しいようです。バッチファイルのその行がそのままで、これらのコマンドを生成することが期待されます。

dir > 1.output
dir > 2.output
dir > 3.output
dir > 4.output
dir > 5.output

1.output2.outputなどを作成します。

デバッグのヒントとして、その行を次のように変更してみてください。

for %%a in (1 2 3 4 5) do echo dir ^> %%a.output

リダイレクト^をエスケープするために使用される に注意してください。>

また:

  • %%aバッチ ファイルではなく%a、コマンド ラインで使用することを忘れないでください。
  • for変数は大文字と小文字が区別されることに注意してください。%%Aとは異なり%%aます。

アップデート

このような古いバージョンの OS でバッチ ファイルを動作させる必要があったのは久しぶりですが、当時はリダイレクトに互換性がなかったとしても不思議ではありませんfor

これを試すことができます:

for %%a in (1 2 3 4 5) do call helper.bat %%a

helper.bat で:

dir > %1.output

または、追加のバッチ ファイルが気に入らない場合は、それらを 1 つのファイルに結合します。

if .%1==.sub goto do_sub
for %%a in (1 2 3 4 5) do call %0 sub %%a
goto end
:sub
shift
dir > %1.output
:end
于 2009-04-02T23:01:43.803 に答える
0

私は自由に使える Win98 システムを持っていませんがfor /?、DOS ボックスに入って、何か役立つものがないか調べてみてください。

NT ベースの Windows OS でこれを行う方法は次のとおりです。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

したがって、ステートメントは次のようになります。

FOR /L %%a IN (1,1,5) DO echo dir ^> %%a.output

おそらく、Win98 の DOS にも似たようなものがあります。

于 2009-04-03T12:45:47.240 に答える