2014-09-24 6 views
1

Моя задача - написать командный файл, который записывает числа из param1 в param2, если param2 больше, чем param1, тогда числа будут записаны из param2 в param1.Оператор if (GTR) в командном файле

Проблема с моим кодом заключается в том, что он работает от 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.

Любое предложение?

ответ

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
if "%~1" gtr "%~2" (set "step=-1") else (set "step=1") 
for /l %%a in (%~1 %step% %~2) do echo %%a 

Вам нужно только настроить послдоватльность

+0

aah..shorter чем моя +1 :) – npocmaka

Смежные вопросы