Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Передача значения переменной в IF при EnableExtensions (http://forum.oszone.net/showthread.php?t=176031)

kotik147 19-05-2010 08:51 1416508

Передача значения переменной в IF при EnableExtensions
 
Уверен все дело с приоритетом % - выше и ! - ниже при 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 1416524

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

Комментарии оставлю специалистам. :)


Время: 15:58.

Время: 15:58.
© OSzone.net 2001-