如何使用循环和 % 运算符编写 Windows 批处理文件命令?

如何使用循环和 % 运算符编写 Windows 批处理文件命令?

我想在批处理文件中写入以下代码。我该怎么做?

for (i=0; i<100; i++)
{
   rem = i % 10;
   if(rem == 0)
   {
     // ECHO something
   }
   else
   {
     ECHO i         
   }
}

答案1

这相当复杂,因为循环中的变量扩展有效在批处理文件中。批处理文件确实有自己的for构造;不需要乱用gotos.%%是批处理文件中的模运算符,%保留用于变量的扩展。

此代码对我有用:

@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

答案2

模数可以用set /a. 循环可以用goto,就像你如何将这些for循环转换成gotoC 语言中的一样

@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是一个开始注释的命令,因此我建议避免将其作为变量名

循环可以变得更简单for /l但现在你必须启用延迟扩展因为整个主体for是一次性解析的

相关内容