Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


Contributor


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

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


Stalker_AleX333, Попробуйте сначала так:
Код: Выделить весь код
@Echo Off
cls
	Set "A=Main"
	Echo %A%
	Call :Kuku
	Echo %A%
Pause
Exit /B

:Kuku
	Set "A=kuku"
	Echo %A%
Exit /B
Потом вот так
Код: Выделить весь код
@Echo Off
cls
	Set "A=Main"
	Echo %A%
	Call :Kuku
	Echo %A%
Pause
Exit /B

:Kuku
SetLocal
	Set "A=kuku"
	Echo %A%
EndLocal
Exit /B
Пара SetLocal - EndLocal позволяет "экранироваить" область видимости переменных. Переменные с одинаковыми именами в одной части программы не будут изменяться в другой части, то есть, внутри подпрограммы Вы можете объявлять переменные без боязни их переопределить в других частях программы.
Если у Вас длинный код, для читаемости и удобства написания можно оформить отдельные функционально обусловленные куски в виде процедур, при необходимости применяя SetLocal - EndLocal
А переменные в знаках ! - это уже другая песТня

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


Последний раз редактировалось megaloman, 30-01-2019 в 22:14.

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

Отправлено: 22:00, 30-01-2019 | #30