none
Сравнение текстовых переменных в bat файле RRS feed

  • Вопрос

  • Уважаемые ГуРу помогите ЛоМаку-)

    Есть две строковые переменные в BAT фале (количество символов одинаковое, в составе переменной только цифы (превышают max 32 bit)).

    Как определить большее либо меньшее.

    С Уважением Pitkin.

    23 ноября 2012 г. 23:55

Ответы

  • Помоги себе сам.

    Может кому пригодится:

    rem ----------------------------------------------------------------------------------
    rem	function:		maxstring
    rem 	param:		string1 as string, string2 as string  
    rem	return value:	0 - equal, 1 - max, 2 - min as integer
    rem ----------------------------------------------------------------------------------
    :maxstring (string1 string2)
    set str1=%~1
    set str2=%~2
    set /a n=0
    set /a ret = 0
    setlocal enabledelayedexpansion
    :loop_maxstring
    set ch1=!str1:~ %n%, 1!
    set ch2=!str2:~ %n%, 1!
    if not defined ch1 goto ret_maxstring
    set /a n=%n% + 1
    set /a n1=ch1
    set /a n2=ch2
    if %n1% equ %n2% goto loop_maxstring
    if %n1% gtr %n2% set /a ret = 1
    if %n1% lss %n2% set /a ret = 2
    :ret_maxstring
    endlocal & set /a %3=%ret%
    exit /b 0
    rem ----------------------------------------------------------------------------------

    Пример использования: call :maxstring %freespace% %minfreespace% maxval

    26 ноября 2012 г. 21:28

Все ответы

  • Никто не знает, как печально!!!
    24 ноября 2012 г. 1:02
  • Вы серьезно считаете, что на форумах по разработке под Win, с четырех до пяти утра сидят гуру по разработке под Mac?
    24 ноября 2012 г. 6:04
  • А при чем тут МАС?
    26 ноября 2012 г. 18:15
  • Есть конкретный вопрос реализации под Windows OS.

    Вместо того чтобы умничать, хотя бы вопрос прочитали -(.

    26 ноября 2012 г. 18:19
  • Помоги себе сам.

    Может кому пригодится:

    rem ----------------------------------------------------------------------------------
    rem	function:		maxstring
    rem 	param:		string1 as string, string2 as string  
    rem	return value:	0 - equal, 1 - max, 2 - min as integer
    rem ----------------------------------------------------------------------------------
    :maxstring (string1 string2)
    set str1=%~1
    set str2=%~2
    set /a n=0
    set /a ret = 0
    setlocal enabledelayedexpansion
    :loop_maxstring
    set ch1=!str1:~ %n%, 1!
    set ch2=!str2:~ %n%, 1!
    if not defined ch1 goto ret_maxstring
    set /a n=%n% + 1
    set /a n1=ch1
    set /a n2=ch2
    if %n1% equ %n2% goto loop_maxstring
    if %n1% gtr %n2% set /a ret = 1
    if %n1% lss %n2% set /a ret = 2
    :ret_maxstring
    endlocal & set /a %3=%ret%
    exit /b 0
    rem ----------------------------------------------------------------------------------

    Пример использования: call :maxstring %freespace% %minfreespace% maxval

    26 ноября 2012 г. 21:28
  • Спасибо, что поделились решением проблемы. Но наиболее подходящим разделом был Windows Scripting

    И, пожалуйста, не разводите оффтоп. Еще раз спасибо.


    Для связи [mail]

    30 ноября 2012 г. 11:32
    Модератор