Цитата volk1234:
команда -unlockall просто вызывает завершение скроипта »
|
не ЗАВЕРШЕНИЕ, а пропуск обработки парметров и ПРОДОЛЖЕНИЕ работы скрипта, можно и так:
Код:
@Echo Off
Set $I=0& For %%i In (%*) Do Set $P=%%i& Call :CMD_PARSE
If Defined $SKIP (GoTo :UnlockAll
) Else For /F "Tokens=1* Delims==" %%i In ('Set $_') Do 2>Nul Call :%%j||Call :ERR0 %%j
Echo Код ПОСЛЕ обработки всех ключей
Exit /B
:UnlockAll
Echo Код ВМЕСТО обработки ключей с последующим выходом
Exit /B
:REG1
Echo REG1 %*
Exit /B 0
:REG2
Echo REG2 %*
Exit /B 0
:ERR0
Echo ОШИБКА! Ключ "%1" не поддерживается!
GoTo /B 0
:CMD_PARSE
If /I "%$P%"=="-unlockall" Set $SKIP=TRUE
If /I "%$P:~0,1%"=="-" Set $P=%$P:~1%& Set /A $I=%$I%+1
Call Set $_%$I%=%%$_%$I%%%%$P%
GoTo :EOF
P.S. Если заменить "
GoTo" на "
CALL :", то в
:UnlockAll будет "
Код ВМЕСТО обработки ключей с последующим ПРОДОЛЖЕНИЕМ"