Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Цитата epoddubniy:
Но почему-то не переходит. >
Что написали, то и получили. Включите формализм:
if "%NextStep%" neq "go" call :skip
Если условие выполняетя, вызываем процедуру "skip", она выполняется, затем управление передаётся на следующую строку кода за этим If. (Вы использовали Call а не GoTo. Читайте Call /?)
Если условие не выполняется, делаем следующую строку кoда:
call :go
Процедура выполнится, и опять, возврат на следующую строку кода:
:go
и далее по тексту кода.
Повторно выполнится кусок кода от :go до exit.
как минимум, перед :go надо Exit
Можно нарисовать вот так:
Код: Выделить весь код
@Echo Off
cls
	echo vvedi skip, esli ne nuzhno menyat ip ili go, esli nuzhno
	set /p NextStep=

	if /I "%NextStep%" neq "go" (call :skip) else (call :go)
Exit /B
Но смысла набирать именно "skip" никакого: это значение нигде не контролируется.
Код: Выделить весь код
@Echo Off
cls
	echo vvedi go, esli nuzhno  menyat ip
	set /p NextStep=

	if /I "%NextStep%"=="go" (call :go) else (Echo konec)
Exit /B
А по минимуму изменить Ваш код:
Код: Выделить весь код
@Echo Off
cls
	echo vvedi skip, esli ne nuzhno menyat ip ili go, esli nuzhno
	set /p NextStep=

	if "%NextStep%" neq "go" GoTo :skip		
:go
.........................
.........................

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 08-10-2021 в 15:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 08-10-2021 | #4