Войти

Показать полную графическую версию : [решено] Передача значения переменной в IF при EnableExtensions


kotik147
19-05-2010, 08:51
Уверен все дело с приоритетом % - выше и ! - ниже при SetLocal EnableExtensions в IF, но правильно расставить сымволику не смог.
Прошу помощи, если можно, с коментариями.
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

Set NumLet=0
Set ABC=ABCDEFGHIJKLMNOPQRSTUVWXYZ
IF /I "10"=="10" (
Set /A NumLet=NumLet+1
Set Letter=!ABC:~%NumLet%,1!
@echo [Не правильно] Номер буквы !NumLet! буква !Letter!
) ELSE (
Set NumLet=0
Set Letter=!ABC:~%NumLet%,1!
@echo [Нет] Номер буквы !NumLet! буква !Letter!
)
Set Letter=!ABC:~%NumLet%,1!
@echo [Правильно] Номер буквы %NumLet% буква %Letter%
pause

gora
19-05-2010, 09:22
kotik147, попробуйте так:@echo off
SetLocal EnableExtensions EnableDelayedExpansion

Set NumLet=0
Set ABC=ABCDEFGHIJKLMNOPQRSTUVWXYZ
IF /I "10"=="10" (
Set /A NumLet=NumLet+1
Call :_mark
@echo [Не правильно] Номер буквы !NumLet! буква !Letter!
) ELSE (
Set NumLet=0
Call :_mark
@echo [Нет] Номер буквы !NumLet! буква !Letter!
)
Set Letter=!ABC:~%NumLet%,1!
@echo [Правильно] Номер буквы %NumLet% буква %Letter%
pause

:_mark
Set Letter=!ABC:~%NumLet%,1!
GoTo :EOF
Комментарии оставлю специалистам. :)




© OSzone.net 2001-2012