如果声明(GTR)在批处理文件中

时间:2014-09-24 16:59:45

标签: batch-file if-statement

我的任务是编写一个批处理文件,将param1中的数字写入param2,如果param2大于param1,则数字将从param2写入param1。

我的代码的问题是它从param1运行到param2,即使param1更大。

echo off
if %~2 GTR %~1 (for /l %%B in (%1,1,%2) do echo %%B) else (for /l %%C in (%2,1,%1) do echo %%C)

我的输入是test.bat 100 1

我的输出是从1到100的数字。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

if %~2 GTR %~1 (
   for /l %%B in (%1,1,%2) do echo %%B
) else (
   for /l %%C in (%1,-1,%2) do echo %%C
)

答案 1 :(得分:1)

if "%~1" gtr "%~2" (set "step=-1") else (set "step=1")
for /l %%a in (%~1 %step% %~2) do echo %%a

您只需要调整步骤