Как ввести переменную в cmd с клавиатуры
У меня есть файл Windows .bat, который я хотел бы принять от пользователя, а затем использовать результаты этого ввода как часть вызова дополнительных команд.
Например, я хотел бы принять идентификатор процесса от пользователя, а затем запустить jstack для этого идентификатора, поместив результаты вызова jstack в файл. Однако, когда я пытаюсь это сделать, это не работает.
Вот мой пример содержимого файла bat:
и вот что появляется в jstack.txt:
"Завершить пакетное задание (Да / Нет)?" обычно появляется, когда вы нажимаете Ctrl-C во время работы вашего .bat. Jstack.txt будет содержать выходные данные jstack и ничего, касающееся вашего пакетного файла, а также вы не сказали, что такое Jstack. Если вы хотите , фиксированные параметры для входа вы лучше использовать , choice чем set /p Пожалуйста, пометьте мой пост как ответ, суть которого заключается в том, что при запуске пакетной программы вы нажимаете Enter, а не вводите идентификатор в приглашении, и поэтому для% id% было задано значение, Enter ID: а не какой-то идентификатор, который вы должны были предоставить клавиатура.Попробуй это:
Затем вы можете использовать %id% в качестве параметра для другого командного файла, как jstack %id% .
Например:
Есть ли способ передать вывод команды SET в NIL:, чтобы вы могли скрыть ввод? Например, если вы хотите сделать: set /p ID:\r\n set /p pw=Enter Passwd: и не хотите, чтобы текст пароля отображался в окне, не говоря уже о том, чтобы отображаться в буфере команд «DosKey»? Я пробовал несколько разных способов, и не смог найти способ сделать это, кроме написания маленькой C-программы, которая бы взяла ввод и присвоила его EnvVar, но это обман! :) Я хочу, чтобы он работал только с CMD Windows. Обратите внимание на добавленную тонкость пространства в конце "Enter ID: " . Дает небольшой промежуток между подсказкой и ответом пользователя. Delete the internet?No silly против Delete the internet? No silly . Нет необходимости в цитатах. Чего не хватало @Instantsoup, так это «% id%» в строке jstack %id% > jstack.txtСинтаксис таков: set /p variable=[string]
После того, как вы установили свою переменную, вы можете использовать ее следующим образом.
обратите внимание на %VariableName% синтаксис
Пожалуйста, закончите предложение . Вы собираетесь включить другую ссылку? Кроме того, я протестировал все вышеперечисленное в cmd.exe оболочке Windows 7 , и каждый - без исключения - назначает пользовательский ввод для переменной с произвольным именем. Как ваш ответ украшает то, что уже было предоставлено? Зачем нам пространство? Что именно происходит в том, cmd что не позволяет места?Я не уверен, так ли это для всех версий Windows, однако на машине с XP у меня должно быть следующее:
Без строки подсказки в кавычках я получаю различные результаты в зависимости от текста.
+1 за «различные результаты в зависимости от текста»: у меня была та же проблема. Теперь он печатает цитаты с текстом, но странного поведения больше нет. используйте этот синтаксис, чтобы получить кавычки, но не показывайте их: set /p "var1=Prompt String" Полезно использовать кавычки и включать пробел в конце, поскольку это делает запрос в командной строке приятнее. Наличие кавычек делает очевидным, что в командном файле есть место. set /p Var1="Prompt String " Затем, когда вы запускаете файл и пользователь вводит что-то, что вы получаете Prompt String Yes вместо Prompt StringYesПространство после = очень важно.
если я получу то, что вы хотите, это прекрасно работает. Вы также можете использовать% input% в других командах.
:start это просто маркер . Например, он может также использовать a :end , который вызывает такие вещи, как очистка переменной, или вызов popd , или что-то в этом роде. Кроме того, у вас также есть возможность использовать IF ERRORLEVEL1 GOTO END . или даже a GOTO ERR , и в нем :err есть что-то вроде эха. Произошла ошибка при попытке получить номер файла. goto: end Это, вероятно, вопрос привычки .Для SETX нет задокументированного параметра / параметра приглашения, как для SET.
Если вам нужно запросить переменную окружения, которая выживет после перезагрузки, вы можете использовать SETX для ее хранения.
Переменная, созданная SETX, не будет использоваться, пока вы не перезапустите командную строку. Тем не менее, вы можете установить SETX для переменной, которая уже была SET, даже если она имеет то же имя.
Это работает для меня в Windows 8.1 Pro:
(Кавычки вокруг существующей переменной необходимы.)
Эта процедура позволяет вам использовать временную переменную, созданную SET, во время текущего сеанса и позволит вам повторно использовать переменную, созданную SETX, после перезагрузки компьютера или перезапуска приглашения CMD.
(Отредактировано для правильного форматирования абзацев кода.)
У меня есть маленький cmd, который я использую при подготовке компьютера к клиентам: он вызывает пользователя для ввода и переименовывает компьютер в него.
Привет еще раз! Этот полезный скрипт используется на ПК с Win10 после начальной настройки :-)Есть две возможности.
Вы забыли поставить %id% в jstack вызове.
Таким образом, весь правильный пакетный файл должен быть:
И / или 2. Вы поместили его в код (и забыли сообщить нам вопрос), но когда вы запустили пакетный файл, вы нажали клавишу Enter вместо ввода идентификатора (скажем, 1234).
То, что происходит, является результатом этих двух ошибок: jstack предполагается, что он вызывается с идентификатором, который вы ему предоставили.
Но в вашем случае (в соответствии с кодом, который вы указали в вопросе) вы назвали его без какой-либо переменной. Вы написали:
Поэтому, когда вы работаете jstack без переменных, выдается следующее:
Ваша вторая ошибка состоит в том, что вы нажали Enter вместо того значения , когда программа спрашивает вас: Enter ID: . Если бы вы в этот момент ввели идентификатор, скажем, 1234, %id% переменная стала бы этим значением, в нашем случае 1234. Но вы НЕ указали значение и вместо этого нажали Enter. Когда вы не даете переменной никакого значения, и если для этой переменной ранее не было установлено ничего, тогда переменная %id% устанавливается на приглашение set команды !! Так что теперь %id% установлено значение, Enter ID: которое было отображено на вашем экране в соответствии с запросом в командном файле ДО того, как вы вызвали jstack.
Хочу сделать bat файл, который выполняется только после ввода пароля. Как организовать это - не знаю.
Вот, что получилось.
@echo off
set /P var="Введите пароль: "
if var==565355 .
.
Конфигурация компьютера | |
Процессор: Intel Core i5-4570, 3200 MHz | |
Материнская плата: Asus Z97-K | |
Память: 2 x 8Gb DDR3-1333 Corsair Vengeance LP CML16GX3M2A1600C9 | |
HDD: Samsung SSD 850 PRO 256G (238Gb), WDC WD1001FALS (1Tb, 7200 RPM, SATA-II), WDC WD10EFRX (1Tb, SATA-III) | |
Видеокарта: MSI N750Ti (MS-V310) | |
Звук: Realtek ALC887 | |
Блок питания: Chieftec GPS-650AB 650W | |
CD/DVD: HL-DT-ST DVDRAM GSA-4167B | |
Монитор: 24" Philips 240PW9ES | |
ОС: Windows 7 Ultimate x64 SP1 | |
Индекс производительности Windows: 7.6 |
Последний раз редактировалось El Sanchez, 06-01-2011 в 21:15 . Причина: исправление
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Конфигурация компьютера | |
Процессор: Intel Core i5-4570, 3200 MHz | |
Материнская плата: Asus Z97-K | |
Память: 2 x 8Gb DDR3-1333 Corsair Vengeance LP CML16GX3M2A1600C9 | |
HDD: Samsung SSD 850 PRO 256G (238Gb), WDC WD1001FALS (1Tb, 7200 RPM, SATA-II), WDC WD10EFRX (1Tb, SATA-III) | |
Видеокарта: MSI N750Ti (MS-V310) | |
Звук: Realtek ALC887 | |
Блок питания: Chieftec GPS-650AB 650W | |
CD/DVD: HL-DT-ST DVDRAM GSA-4167B | |
Монитор: 24" Philips 240PW9ES | |
ОС: Windows 7 Ultimate x64 SP1 | |
Индекс производительности Windows: 7.6 |
Держать пароль в открытом виде в батнике - нехорошо. Можно немного затруднить чтение пароля, например так:
можно создать еще один батник с проверкой пароля, скомпилировать его в .exe и вызывать, а ответ (верный\неверный) передавать через ErrorCode. Но это все примитивная защита, рассчитанная на офисных работников, который батник второй раз в жизни видят. Если он будет использоваться для чего-то серьезного - запрос пароля не спасет.может кому пригодиться.
при использовании данных команд внутри оператора IF следует (т.е. IF в IF, проверка в проверке):
1) в самом начале файла указать строку
Setlocal EnableDelayedExpansion
Выводит случайное число от 0 до 9.
У меня это число по нелепой псевдослучайности цифру секунды
%CD% - раскрывается в строку текущей директории.
%DATE% - раскрывается в текущую дату, используя тот же формат команды DATE.
%TIME% - раскрывается в текущую дату, используя формат команды TIME.
%ERRORLEVEL% - раскрывается в текущее значение ERRORLEVEL.
Уровень ошибки, 0 - это нет ошибки, 1 - это есть ошибка, а другие это номера ошибки.
Чтобы получить полный список переменных и их значений введите команду SET
Операции со строковыми или численными переменными
Соединение 2-ух строковых переменных
Вывод определенного(ых) символа(ов) из строки
Символы номеруются начиная с 0!
Существуют 2 способа использовать переменную в переменной, например: вывод n-ого символа
Первый способ с call set
Второй способ с for и setlocal enabledelayedexpansion
писать в do
С циклами мы разберемся в следующей статье.
Но, пока уточню: если код второго способа юзать в пакетном файле (BATнике), то вместо %i юзаем %%i.
Операции с числовыми переменными
Увеличивание на единицу
Деление
Деление в CMD является целочисленным!(то есть делится до целого числа)
Унарные операторы
Логическое отрицание (Logical NOT)
Унарный минус (устанавливает/сбрасывает знаковый бит)
Побитовое И (AND)
Побитовое И — это бинарная операция, действие которой эквивалентно применению логического И к каждой паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
Другими словами, если оба соответствующих бита операндов равны 1, результирующий двоичный разряд равен 1; если же хотя бы один бит из пары равен 0, результирующий двоичный разряд равен 0.
Побитовое ИЛИ (OR)
Побитовое ИЛИ — это бинарная операция, действие которой эквивалентно применению логического ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
Другими словами, если оба соответствующих бита операндов равны 0, двоичный разряд результата равен 0; если же хотя бы один бит из пары равен 1, двоичный разряд результата равен 1.
Побитовое исключающее ИЛИ (XOR)
Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) — это бинарная операция, действие которой эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на
одинаковых позициях в двоичных представлениях операндов.
Другими словами, если соответствующие биты операндов различны, то двоичный разряд результата равен 1; если же биты совпадают, то двоичный разряд результата равен 0.
К битовым операциям также относят битовые сдвиги. При сдвиге значения битов копируются в соседние по направлению сдвига.
Различают сдвиг влево (в направлении от младшего бита к старшему) и вправо (в направлении от старшего бита к младшему).
При логическом сдвиге значение последнего бита по направлению сдвига теряется (копируясь в бит переноса), а первый приобретает нулевое значение.
Двоичный арифметический сдвиг
Арифметический сдвиг аналогичен логическому, но значение слова считается знаковым числом, представленным в дополнительном коде.
Так, при правом сдвиге старший бит сохраняет свое значение. Левый арифметический сдвиг идентичен логическому.
Максимальный размер отдельной переменной среды составляет 8192 байта.(у меня выходило только 8184, наверное это вместе с названием. )
Максимальный общий размер всех переменных среды, включая имена переменных и знак равенства, составляет 65 536 Кбайт.
Системы счисления
Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел. Например, числа 0x12, и 022 обозначают десятичное число 18.
Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются.
Восьмеричная система счисления
Но после задания значения переменной, значение хранится в десятичной системе счисления.
Например, сложение
Сохранение в переменной вывода программы
К сожаление, передача вывода программ на вход команды set не работает:
Поэтому можно воспользоваться временным сохранением в файл:
Примеры использования
Узнать динамически генерируемое имя архива WinRar:
Комментарий от Dragokas :
По сути эта команда считывает в переменную первую строку файла:
Комментарий от m00slim25 :
Эти операции, как и все остальные, поддерживают кавычный синтаксис:
Оператор == используется только для строчного сравнения. Кавычки необходимы если в переменной/операнде имеются пробелы.
Для арифметического сравнения необходимо использовать арифметические операторы:
EQU : Равно (=)
NEQ : Не равно (!=)
LSS : Меньше (<)
LEQ : Меньше или равно (<=)
GTR : Больше (>)
GEQ : Больше или равно (>=)
Использовать операторы, указанные в скобках, не представляется возможным, потому что, например, операторы < и > являются указателями перенаправления ввода-вывода.
Dragokas
Very kind Developer
Урезание части строки, замена значения в переменной:Ограничение - будет модифицирована переменная. Следует выбрать переменную, модификация которой не нарушит работу скрипта или использовать setlocal / endlocal.
Undocumented Dynamic variables (read only)
%=C:% Текуший каталог на диске C:
%=D:% Текуший каталог на диске D:,E:,F. (буковку подставите), если к нему было обращение в текущем сеансе CMD.EXE
%=ExitCode% Шестнадцатеричное значение кода возврата по EXIT /B
%=ExitCodeAscii% Символьное (ASCII) представление кода возврата по EXIT /B, если он больше 32 (пробел).
Dragokas
Very kind Developer
Полезные функции
Получить уникальное имя файла во временной папке
Мы знаем, что переменная %RANDOM% выводит значение в области от 0 до 32767,
а что если нам нужно диапазон уже, к примеру от -50 до 50? Вот решение:
Как известно в бат-файлах есть только операция целочисленного деления
и получения остатка от деления. Получить дробное число нельзя. Решил восполнить этот пробел:
Алгоритм получения дробной части:
Остаток от деления * (10^(знаков после запятой)) / делитель.
Потом убираются лишние концевые нули у дробной части.
Отличие от встроенного в CMD деления: исходное число (делимое) может превышать границу для числового типа данных CMD
(актуально для Гигабайтов данных, представленных в виде байтов, для дальнейшего перевода в более удобо-читаемую единицу измерения).
Перевод чисел из десятеричной системы в любую (2-16)
1. Простой вариант - проверка на содержимое в строке заданной подстроки
Принцип работы: если подстрока присутствует в строке, она будет удалена и результат не будет равен исходной строке.
Не работает с пустыми строками.
2. Вариант, когда подстрока тоже в переменной
Пример использования и функция:
Получение N-й строки из файла без использования (!) - DelayedExpansionTalory
Новый пользователь
Здравствуйте, не совсем понял про шестнадцатеричную систему. Мне надо день месяца, месяц и год вывести в шестьнадцатеричной системе. Как это будет выглядеть в bat?Dragokas
Very kind Developer
О какой части статьи идёт речь?
Talory
Новый пользователь
Про системы счисления. Хочу через bat файл в реестре сделать изменения в значении файла. Необходимо внести нынешнию дату в шестьнадцатеричной системеDragokas
Very kind Developer
Мне надо день месяца, месяц и год вывести в шестьнадцатеричной системе.В общем случае, перевод с 10-СС в 16 будет через Batch выглядеть так:
JAXSWAGGER
Новый пользователь
Здравствуйте, а как я могу сделать, что бы система проверяла меньше ли числовая переменная определенного числа? Я не нашел данного в статьеDragokas
Very kind Developer
IF [/I] строка1 оператор_сравнения строка2 команда
EQL - равно
NEQ - не равно
LSS - меньше
LEQ - меньше или равно
GTR - больше
GEQ - больше или равно,
JAXSWAGGER
Новый пользователь
Выдает ошибку и закрывается мгновенноIF /i A EQL 70 (echo test)
В чем моя ошибка?
Dragokas
Very kind Developer
Похоже, ошибка во встроенной документации.
Вместо EQL должно быть EQU
/i - не нужна т.к. у вас сравнение математическое, а не текстовое
Переменную нужно подавать в раскрытом виде:
Второй вариант с кавычками безопаснее, если сравниваете строки.
Переменную можно не раскрывать только в математических операциях при участии оператора set /a
m00slim25
Новый пользователь
Заметил несколько ошибок:
>> Логическое отрицание (Logical NOT)
и 0 (False) (%y%) в любых других случаях
>> Побитовая инверсия (Bitwise NOT)
>> Может неправильно инвертировать знаковый бит
>> Унарный минус (устанавливает/сбрасывает знаковый бит)
Эти операции, как и все остальные, поддерживают кавычный синтаксис:
m00slim25
Новый пользователь
Второй вариант с кавычками безопаснее, если сравниваете строки. Оператор == используется только для строчного сравнения. Кавычки необходимы если в переменной/операнде имеются пробелы.Для арифметического сравнения необходимо использовать арифметические операторы:
EQU : Равно (=)
NEQ : Не равно (!=)
LSS : Меньше (<)
LEQ : Меньше или равно (<=)
GTR : Больше (>)
GEQ : Больше или равно (>=)
Использовать операторы из скобок не представляется возможным, потому что, например, операторы < и > являются указателями перенаправления ввода-вывода.
Dragokas
Very kind Developer
Спасибо за комментарии, дополнил.
m00slim25
Новый пользователь
При использовании нетривиальных вычислений. Например, в случае переполнения при использовании операторов битового сдвига. Эти операторы просто не определяют переполнение, вследствие чего последующая побитовая инверсия даёт ошибочный результат.
ЗЫ. Только не просите примеры, они где то далеко и глубоко закопаны Да Вы и сами можете исследовать эту особенность, это несложно
ЗЫЫ. Любой, кто использует вычисления подобного рода в командной оболочке, способен самостоятельно расследовать подобные инциденты, выявить причину ошибочных результатов, и принять меры, чтобы избежать этих инцидентов. Я привёл тот комментарий лишь для информативности: знание - сила. Можете игнорировать его, если он Вас каким-либо образом напрягает.
Dragokas
Very kind Developer
Да, верю. Я проверил побитовую инверсию на максимальных числах и у меня всё посчитало правильно.
Но если речь о битовых сдвигах, ещё и переполнении, то тогда всё понятно.
Записать объявление и раскрытие переменной в одной строке кода
Доброго времени суток. Задача: Необходимо объявить переменную при запуске cmd.exe. Вопрос.
Объявление переменной, после ввода её имени с клавиатуры
необходимо, чтобы пользователь имел возможность задавать свои имена переменных. А вообще требуется.
Объявление переменной
Добрый день, подскажите где нужно правильно объявить переменную что бы потом ее использовать в.
magirus, да
Добавлено через 2 минуты
magirus, скрин нет возможности выложить, в консоли пишется Отсутствующий оператор. Ошибка в синтаксисе команды.
magirus, не могу скрин выложить, текст ошибки появляется на доли секунд и закрывается после окно
Добавлено через 6 минут
magirus,
где Текущая кодовая страница: 1251
d:\Прочее\скрипты и пр>attrib "D:\Прочее\скрипты и пр\Тест" -h -s
d:\Прочее\скрипты и пр>
кракозябры
это если запустить через cmd как вы говорите
Добавлено через 14 минут
в своем коде нашел ошибку, квадратная скобка в конце не стоит, но с ней таже ошибка и окно закрывается
Добавлено через 37 минут
еще пошаманил с кодом:
теперь переменная вводится с клавиатуры но действие не выполняется, ошибка синтаксиса
Добавлено через 11 минут
еще поправил, ошибка остается
Добавлено через 12 минут
еще чутка,
Решение
Синтаксис абсолютно неверный. А квадратные скобки - не используются в cmd в качестве операторов.YuS_2, делал сам по примерам с нета, отсюда и синтаксис, чутка подшаманил добавив chcp, из за путей на русском языке не работало, сейчас работает, благодарю, а можете чутка про переменные объяснить или гугл курить ? что означают например % ? Ну и литературу по cmd почитать. Здесь на форуме есть тема специальная, там много интересного.
имя переменной обрамленное знаками процента, позволяет получить значение переменной - как один из способов, он же основной. есть ещё варианты получения значения, которые уже зависят от контекста, т.е. от ключей запуска определенных команд, от самих команд где они используются и т.д., но это уже тонкости. В общем, лучше заглянуть в книжки, посмотреть примеры и если что-либо будет непонятно, тогда спросить здесь - подскажут обязательно.
Объявление переменной
Доброго времени суток. Возник вопрос, по какой причине при следующей форме записи, переменные "y" и.
Объявление переменной
Два вопроса: 1) Чем отличается запись: int a = 10; От: int a(10); 2) Что обозначает данная.
Объявление переменной
Надо запрограммирывать микроконтроллер для выполнение определенной работы в MCStudio, так вот.
объявление переменной
необходимо ли в начале программы присваивать переменным значение равное нулю? т.е. у нас есть.
Объявление собственных переменных является неотъемлемой часть практически любого языка программирования, так в языке vbscript они объявляются с помощью ключевого слова dim, а в jscript – используется ключевое слово var.
Переменные командной строки Windows представляют немного другой характер, тут нельзя объявить группу переменных cmd, или же сразу присвоить значения нескольким переменным в командной строке. Давайте посмотрим на следующие строчки кода:
В данном примере, с помощью ключевого слова cmd set мы поэтапно объявили три переменные (Var1, Var2 и Var3), как и в языке vbscript, в cmd регистр символов не играет роли, поэтому, данные строчки выведут фразу "Привет Мир. "
Стоит учитывать один момент, запись
это не одно и тоже, то есть, в первом случае мы создаем cmd переменную "var1", а во втором – "var1 ". С присвоением значений аналогичная ситуация, так что обращайте внимание на пробел.
Видим, что бы вывести значение переменной с помощью функции Echo, мы заключаем ее в символ "%", для set – просто прописываем ее имя, так же стоит учитывать, что всем переменным присваивается строковой тип.
Если вы запустите на выполнение команду cmd set, которая выводит список всех переменных и их значений в текущем сеансе, то увидите, что там будут присутствовать и только что созданные cmd переменные и переменные среды. Мы сможем обращаться к ним на протяжение всего сеанса работы.
Что бы очистить переменные в командной строке Windows от их содержимого, нужно просто присвоить пустое значение:
Мы просто после имени прописали знак равенства и все. Стоит помнить, что если в таких языках программирования как vbscript и jscript присвоение пустого значения переменной не влияет на ее существование, то в командной строке происходит полное ее удаление, то есть, команда:
просто выведет строчку %Var3%, а команда
Стоит учитывать тот момент, что если мы хотим, что бы переменная командной строки Windows содержала специальные символы (например, @ < > & | ^ ), то их нужно экранировать. В языке jscript для вывода специальных символов используются esc-последовательности, в командной строке специальный символ экранируется с помощью "^":
В данном примере мы экранировали символы & и ^, тем самым присвоив фразы:
"100 & 3 = 5"
"100 ^3"
Стоит обратить внимание, что если мы попытаемся вывести значения данных переменных с помощью функции cmd set, то проблем не возникнет, но если будет использовать функцию echo, то получим совсем не тот результат, что ожидали. Так, при попытке выполнить следующую команду:
100
"3" не является внутренней или внешней командой, исполняемой программой или командным файлом.
Это происходит из-за повторного анализа спец-символов при использовании функции echo. Надо просто прописать символ "^" экранирования не один раз, а трижды:
Теперь при выполнении кода:
все пройдет успешно.
Как и в сценариях сервера Windows Script Host, переменные в командной строке Windows могут содержать заданную область видимости.
Область видимости – блок кода, за пределами которого нельзя получить доступ к переменным, объявленным в нем. Довольно ясно значение области видимости проявляется при роботе с функциями, по этому вопросу можете прочить статью "Урок 3 по JScript: Объявление пользовательских функций".
Понятно, что переменные cmd, созданные в текущем окне командной строки недоступна для других процессов, но, есть возможность задать ограничения еще большие.
Что бы задать локальную область видимости, используется блок SETLOCAL … ENDLOCAL . Все cmd переменные командной строки Windows, объявленные в середине данного блока не будут видны за его пределами. Откройте редактор (я использую редактор Notepad++, так как он сразу подсвечивает код), и пропишите в нем следующие строчки кода:
Видим, что вначале мы объявили var1 и присвоили ей значение 0, далее мы снова объявили переменную с аналогичным именем, но уже в блоке SETLOCAL … ENDLOCAL . В сценарии происходит вывод значения как локальной, так и глобальной var1. Я специально использовал латинские знаки, что бы у вас в случае чего не выводились крякозябры.
Спасибо за внимание. Автор блога Владимир Баталий
Читайте также: