回答:
バッチファイルでループ内の変数展開が機能するため、かなり複雑です。バッチファイルには独自のfor
構造があります。goto
sをいじる必要はありません。変数の展開用に予約されている%%
ように、バッチファイルのモジュロ演算子%
です。
このコードは私のために働く:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (0,1,99) do (
set /a remainder = %%i %% 10
if !remainder! == 0 (
echo something
) else (
echo %%i
)
)
endlocal
モジュロはで行うことができますset /a
。Cでループgoto
を変換する方法と同じように、でループを実行できますfor
goto
@echo off
set "i=0"
:loop
if %i% equ 100 goto :endfor
set /a "mod=i %% 10"
if %mod% equ 0 (
echo something %mod%
) else (
echo %i%
)
set /a "i+=1"
goto :loop
:endfor
これrem
はコメントを開始するためのコマンドであるためrem
、スクリプトで使用すると望ましくない動作が発生する可能性があることに注意してください
でループをより簡単にすることができfor /l
ますが、の全体が一度に解析されるため、遅延展開を有効にする必要がありますfor
i<100
は最大99を意味するのでfor /l %%i in (0,1,99) do (