2

バッチファイルを使用して整数以外の値をループするにはどうすればよいですか?

次のように、0から1までのさまざまなパラメーターを使用してアプリケーションを複数回実行しようとしています。

!! DO NOT RUN THIS !!
set application=C:\path\to\my\application.exe

for /L %%p in (0, 0.05, 1) do (
  md %%p
  cd %%p
  START %application% %%p
  cd ..
)

しかし、上記のコードを実行すると、無限ループに陥りますfor /L。整数引数を探しているため、0.05が0に変換されるためだと思います。

バッチファイルを使用して非整数値をループすることは可能ですか?

4

1 に答える 1

3

いいえ、cmd.exe は実際の値を処理できないため、不可能です。

ただし、整数を数えて、後で実際の値を計算することはできます。

setlocal EnableDelayedExpansion
for /L %%p in (0, 5, 100) do (
  set "value=00%%p"
  set "value=!value:~-3!"
  set "prefix=!value:~0,1!"
  set "postfix=!value:~-2!"
  set "num=!prefix!.!postfix!"
  md !num!
  pushd !num!
  START %application% !num!
  popd
)

コードは 0 から 100 までカウントされます。
各数字には がプレフィックスとして付けられ00、各数字が少なくとも 3 桁になるようにします (2->002 など)。
次に、最後の 3 文字だけを取るので、すべての数字は同じ長さになります。

5->005->005
15->0015->015

次に、コードは数値を 2 つの部分に分割します

015->prefix=0 postfix=15

次にset "num=!prefix!.!postfix!"、2 つのパーツの間にドットを配置します

于 2012-06-21T13:05:55.313 に答える