Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @cls
- @echo off
- set fname=%0
- for /f %%I in ("%fname%") do set fname=%%~fI
- for /f %%I in ("%fname%") do set fname=%%~nI%%~xI
- if "%1" == "" call :empty
- if "%1" == "/?" call :empty & goto :eof
- if "%1" NEQ "" call :first %*
- goto :eof
- :empty
- echo Утилита %fname%
- echo Использование:
- echo %fname% [/?]
- echo получить справку
- echo %fname% A B C
- echo передать три числа, среди которых надо найти наименьшее. Числа не должны превышать 9999
- goto :eof
- :first
- REM Первый параметр есть
- if "%2" neq "" (call :second %*) else (
- call :less
- )
- goto :eof
- :second
- REM Второй параметр есть
- if "%3" neq "" (call :third %*) else (
- call :less
- )
- goto :eof
- :min
- if %1 lss %2 (exit /b %1) else (
- if %2 lss %1 (exit /b %2) else (
- exit /b 10000
- )
- )
- :cmp
- set f=0
- if %1==%2 set /a f=%f% + 1
- if %1==%3 set /a f=%f% + 1
- if %2==%3 set /a f=%f% + 1
- exit /b %f%
- :case0
- set min=%1
- call :min %min% %2
- set min=%errorlevel%
- call :min %min% %3
- set min=%errorlevel%
- echo Все параметры различаются: 1-й равен %1, 2-й равен %2, 3-й равен %3
- echo Минимальный равен %min%
- goto :eof
- :case1
- if %1==%2 echo Есть совпадающие параметры (1-й и 2-й равны %1, 3-й равен %3)
- if %1==%3 echo Есть совпадающие параметры (1-й и 3-й равны %1, 2-й равен %2)
- if %3==%2 echo Есть совпадающие параметры (2-й и 3-й равны %2, 1-й равен %1)
- call :min %1 %3
- if %errorlevel%==10000 set min=%1
- call :min %min% %2
- if %errorlevel%==10000 (set min=%2) else (set min=%errorlevel%)
- echo Минимальный равен %min%
- )
- goto :eof
- :case3
- echo Параметры равны и равны %1
- goto :eof
- :findmin
- call :cmp %*
- call :case%errorlevel% %*
- goto :eof
- :third
- REM Третий параметр есть
- if "%4" neq "" call :many
- if "%errorlevel%" == "1" exit /b
- call :findmin %1 %2 %3
- goto :eof
- :many
- REM Четвертый параметр есть
- echo Слишком много параметров
- echo Используйте ключ /?, чтобы познакомиться с синтаксисом
- exit /b 1
- :less
- REM Мало параметров
- echo Слишком мало параметров
- echo Используйте ключ /?, чтобы познакомиться с синтаксисом
- exit /b 1
Add Comment
Please, Sign In to add comment