2007年12月6日木曜日

コマンドプロンプトで繰り返し処理

Windowsのコマンドプロンプトでのループ処理の書き方。

コマンドプロンプトのfor文はファイル・ディレクトリのセットに対しての繰り返し処理がメインだが、オプション(/l)を指定すれば単純なループにも使える。

for /l %変数 in (開始,ステップ,終了) do コマンド [コマンドパラメータ]

例:1~10までの数字についての処理 (またはある処理を10回繰り返す)
for /l %%A in (1, 1, 10) do (
 rem 繰り返す処理
 echo %%A
)


また、for文を活用すればコマンドプロンプトで文字列を置換することもできる。


ただし、繰り返し処理の中で変数をsetしたい場合はsetコマンドの遅延展開が問題になる。
この場合はgotoとif文を使ってループを組み立てたほうが無難。スマートではないが。
set num=1
:loop1
 rem 繰り返す処理
 echo %num%
 set /a num=%num%+1
if not %num% == 11 goto loop1

コマンドプロンプトでは数値の計算はsetを使うので、ループの中で計算を使う場合は後者の方法を選択することになる。

例:0.1~1.0を表示する
set num=1
:loop1
set /a sho=%num% / 10
set /a amari=%num% %% 10
echo %sho%.%amari%
set /a num=%num% + 1
if not %num% == 11 goto loop1

0 件のコメント:

ブログ アーカイブ

tags