Команда SET без параметров используется для вывода текущих значений переменных среды.
Кроме переменных, отображаемых в списке, при вызове команды SET, существуют и другие, значения которых изменяется динамически:
Если при вызове команды SET указать только часть имени, то будет выведен список переменных, имена которых начинаются с указанной строки. Например:
Команда SET поддерживает два дополнительных ключа:
SET /P variable=[promptString]
Ключ /A указывает, что строка справа от знака равенства является числовым выражением, значение которого вычисляется. Обработчик выражений очень прост и поддерживает следующие операции, перечисленные в порядке убывания приоритета:
При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить знаки % для получения значений. Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения. Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс:
Пример использования префиксов:
SET /A REZ=0xA+012
ECHO %REZ%
Ключ /P позволяет установить значение переменной для входной строки, введенной пользователем. Показывает указанное приглашение promptString перед чтением введенной строки. Приглашение promptString может быть пустым. Данный ключ позволяет организовать диалог с пользователем в командном файле:
В командных файлах довольно часто требуется работать с частью значения, принимаемого переменной, для чего используются подстановочные значения:
Следующий командный файл использует замену символа «точка» на символ «тире» в значении переменной, соответствующем текущей дате:
@ECHO OFF
set tm=%DATE%
ECHO Дата1 = %tm%
SET tm=%DATE:.=-%
ECHO Дата2 = %tm%
Для выделения части значения, принимаемого переменной, используется следующая конструкция:
Следующий пример использует отображение текущего времени без секунд и долей секунд (только первые 5 символов из стандартного значения переменной TIME):
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
0,5%
ECHO Время2 = %tm%
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
Возможно использование число пропусков не задано, и используется отрицательное число, то принимаемое значение будет частью переменной от конца строки:
. Нулевое значение можно не указывать, сохраняя формат подстановки:
0,-2% эквивалентно %PATH:
Разница в результатах использования значений переменных довольно наглядно демонстрируется следующим командным файлом:
set LIST=
for %%i in (*) do set LIST=%LIST% %%i
echo %LIST%
Значение переменной LIST внутри цикла изменено не будет. Для того, чтобы это произошло, командный файл нужно изменить следующим образом:
Setlocal EnableDelayedExpansion
set LIST=
for %%i in (*) do set LIST=!LIST! %%i
echo %LIST%
Теперь, значение переменной LIST внутри цикла FOR будет изменяться, последовательно принимая значения имен файлов, разделенных пробелом ( set LIST=!LIST! %%i )
- Изучаем переменные среды в Windows 10
- Переменные среды Windows
- Переменные PATH и PATHEXT
- Создание переменных среды
- Заключение
- Как в командной строке Windows вывести все переменные среды
- PowerShell и CMD
- Как вывести все переменные окружения в PowerShell
- Как вывести все переменные окружения в CMD
- Переменные среды в CMD, BAT-файле
- Список переменных сред
- Видео
Изучаем переменные среды в Windows 10
Переменные среды Windows
Получить информацию о существующих переменных можно в свойствах системы. Для этого кликаем по ярлыку Компьютера на рабочем столе правой кнопкой мыши и выбираем соответствующий пункт.
Переходим в «Дополнительные параметры».
В открывшемся окне с вкладкой «Дополнительно» нажимаем кнопку, указанную на скриншоте ниже.
Здесь мы видим два блока. Первый содержит пользовательские переменные, а второй системные.
Если требуется просмотреть весь перечень, запускаем «Командную строку» от имени администратора и выполняем команду (вводим и нажимаем ENTER).
На рабочем столе появится файл с названием «set.txt», в котором будут указаны все переменные окружения, имеющиеся в системе.
Все их можно использовать в консоли или скриптах для запуска программ или поиска объектов, заключив имя в знаки процента. Например, в команде выше вместо пути
Примечание: регистр при написании переменных не важен. Path=path=PATH
Переменные PATH и PATHEXT
Если с обычными переменными все понятно (одна ссылка – одно значение), то эти две стоят особняком. При детальном рассмотрении видно, что они ссылаются сразу на несколько объектов. Давайте разберемся, как это работает.
«PATH» позволяет запускать исполняемые файлы и скрипты, «лежащие» в определенных каталогах, без указания их точного местоположения. Например, если ввести в «Командную строку»
система осуществит поиск по папкам, указанным в значении переменной, найдет и запустит соответствующую программу. Этим можно воспользоваться в своих целях двумя способами:
%SYSTEMROOT% определяет путь до папки «Windows» независимо от буквы диска.
Затем нажимаем ОК в окнах «Переменные среды» и «Свойства системы».
Для применения настроек, возможно, придется перезапустить «Проводник». Сделать это быстро можно так:
Открываем «Командную строку» и пишем команду
taskkill /F /IM explorer.exe
Все папки и «Панель задач» исчезнут. Далее снова запускаем «Проводник».
Еще один момент: если вы работали с «Командной строкой», ее также следует перезапустить, то есть консоль не будет «знать», что настройки изменились. Это же касается и фреймворков, в которых вы отлаживаете свой код. Также можно перезагрузить компьютер или выйти и снова зайти в систему.
Теперь все файлы, помещенные в «C:\Script» можно будет открывать (запускать), введя только их название.
«PATHEXT», в свою очередь, дает возможность не указывать даже расширение файла, если оно прописано в ее значениях.
Принцип работы следующий: система перебирает расширения по очереди, пока не будет найден соответствующий объект, причем делает это в директориях, указанных в «PATH».
Создание переменных среды
Создаются переменные просто:
Для примера переделаем команду, которую мы использовали для получения списка (самая первая в статье). Теперь нам вместо
потребуется ввести только
Заключение
Использование переменных окружения позволяет значительно сэкономить время при написании скриптов или взаимодействии с системной консолью. Еще одним плюсом является оптимизация создаваемого кода. Имейте в виду, что созданные вами переменные отсутствуют на других компьютерах, и сценарии (скрипты, приложения) с их использованием работать не будут, поэтому перед тем, как передавать файлы другому пользователю, необходимо уведомить его об этом и предложить создать соответствующий элемент в своей системе.
Как в командной строке Windows вывести все переменные среды
В этой статье будет показано, как вывести все переменные окружения в командной строке Windows.
PowerShell и CMD
В первую очередь нужно различать, в какой именно программе вы работаете. Первым появилась CMD — командная строка Windows, оболочка. Много лет CMD был единственным вариантом работы в командной строке Windows.
Затем появился PowerShell. Вначале он был средой, которую можно нужно было специально запускать. В последние годы PowerShell стал использоваться чаще, в «Меню продвинутого пользователя», которое вызывается сочетанием клавиш Win+x, PowerShell заменил CMD. Также в новом Terminal по умолчанию используется именно PowerShell.
Команды для вывода всех переменных окружения зависят от того, находитесь ли вы в PowerShell или в CMD, поэтому их нужно различать.
PowerShell выглядит так:
То есть приглашение командной строки начинается на «PS».
А CMD выглядит так:
Как вывести все переменные окружения в PowerShell
В PowerShell используйте одну из следующих команд:
Они не только равнозначны, на самом деле, это просто псевдонимы одной команды. То есть в их использовании нет никакой разницы.
Как вывести все переменные окружения в CMD
Чтобы вывести переменные среды в CMD используйте команду:
Чтобы вывод огранить одним экраном с возможностью пролистывания списка, используйте следующую конструкцию:
Для сохранения вывода в файл:
Этот текстовый файл output.txt можно открыть в любом редакторе, например в Notepad.
Для показа значения определённой переменной используйте знакомую команду set с указанием имени переменной:
Команда set выводит значение всех переменных, которые начинаются на строку ПЕРЕМЕННАЯ. К примеру, предыдущая команда выведет значение переменных PATH и PATHEXT.
А следующая команда выведет значения всех переменных, чьё имя начинается на P:
Обратите внимание, что имена команд в Windows не чувствительны к регистру.
Переменные среды в CMD, BAT-файле
Бывает так, что написанный Вами BAT-файл работает на одном компьютере, но не работает на другом. Ошибка часто заключается в том, что были использованы прямые пути к файлам. Например батник для копирования всех текстовых файлов находящихся в папке windows на диске C
Такой батник будет работать на любом компьютере, только если операционная система установлена на диск С, если ОС расположена на другом диске D,F,K,J и т.д., необходимо использовать переменную %WINDIR%
Переменные среды — текстовые переменные операционной системы, хранящие данные о ряде настроек системы. Используются переменные среды при копировании, перемещении, переименовании, удалении, создании файлов и папок других действий в командной строке.
Список переменных среды ОС Windows Вы можете посмотреть введя в командной строке: set и нажав клавишу Enter Также можно вывести список переменных в текстовый файл с помощью батника
Bat-файл с таким кодом создаст текстовый файл docent.txt(здесь и далее имена подставляйте свои)и выведет список переменных среды ОС Windows в этот текстовый документ в том-же месте где и располагается запущенный батник.
Список переменных сред
%ALLUSERSPROFILE% размещение профиля «All Users»
%APPDATA% используемое по умолчанию размещение данных приложений
%CD% путь к текущей папке
%CMDCMDLINE% строка команд, с помощью которой был запущен данный экземпляр Cmd.exe
%CMDEXTVERSION% номер версии текущих расширений обработчика команд
%COMPUTERNAME% имя компьютера
%COMSPEC% путь к исполняемой командной оболочке
%DATE% текущие данные, использует тот же формат, что и команда date /t
%ERRORLEVEL% код ошибки последней использовавшейся команды
%HOMEDRIVE% имя диска локальной рабочей станции
%HOMEPATH% полный путь к основному каталогу пользователя
%HOMESHARE% сетевой путь к общему основному каталогу пользователя
%LOGONSEVER% имя контроллера домена, который проверял подлинность текущей сессии
%NUMBER_OF_PROCESSORS% количество процессоров, установленных на компьютере
%OS% имя операционной системы
%PATHEXT% список расширений файлов
%PROCESSOR_ARCHITECTURE% архитектура процессора. Значения: x86, IA64
%PROCESSOR_IDENTFIER% описание процессора
%PROCESSOR_LEVEL% номер модели процессора, установленного на компьютере
%PROCESSOR_REVISION% номер модификации процессора
%ProgramFiles% путь к Program Files
%PROMPT% параметры командной строки для текущего интерпретатора
%RANDOM% произвольное десятичное число от 0 до 32767
%SYSTEMDRIVE% имя диска, содержащего корневой каталог
%SYSTEMROOT% размещение системного каталога Windows
%TIME% текущее время
%USERDOMAIN% имя домена, содержащего список учетных записей пользователей
%USERNAME% имя пользователя, выполнившего вход в систему
%USERPROFILE% размещение профиля для текущего пользователя
%WINDIR% размещение каталога операционной системы
Если Вы хотите посмотреть чему равна переменная среды на Вашем компьютере в командной строке(окно CMD), не забывайте прописывать впереди переменной «echo»
echo — команда предназначенная для отображения строки текста
Батником вывести информацию в txt можно так
echo сегодня %DATE% время %TIME% >> docent.txt
echo имя компьютера %COMPUTERNAME% >> docent.txt
echo имя юзера %USERNAME% >> docent.txt
echo где Винда %WINDIR% >> docent.txt
echo и т.д. и т.п >> docent.txt
Использование переменной при удалении файлов и папок с помощью Bat файла
Удаление папки Docent которая находится на диске С в WINDOWS
RD С:\WINDOWS\Docent /S/Q
То-же самое, но удаляем папку с помощью переменной %WINDIR%
RD %WINDIR%\Docent /S/Q
Использование переменной при перемещении файлов
Перемещение текстового файла docent.txt из папки WINDOWS на диске С в папку Program Files которая тоже на диске С
MOVE «C:\WINDOWS\docent.txt» «C:\Program Files»
То-же самое, но перемещаем с помощью переменных %WINDIR% и %ProgramFiles%
MOVE «%WINDIR%\docent.txt» «%ProgramFiles%»
скопировано с: http://docent777.ru/publ/ot_docenta/pro_batniki/peremennye_sredy_v_cmd_bat_fajle/1-1-0-29
источник: www.docent777.ru
Попробуйте наши услуги обслуживания и получите третий месяц обслуживания в подарок!
Практически, вся работа с командной строкой (cmd) основывается на переменных окружения. Так, если в консольном окне прописать на выполнение команду, путь к которой отсутствует, то вначале происходит поиск данной команды на внутреннем уровне.
Что бы просмотреть содержимое cmd переменной окружения (среды) PATH, достаточно в консольном окне ввести команду path и нажать ENTER.
Видим, что пути отделяются друг от друга точкой с запятой, точка с запятой позволяет командной строке определить, где начинается и заканчивается путь. Вы можете получить содержимое переменной окружения и таким способом:
Командная строка ищет исполняемые файлы в каталогах в порядке, в котором эти каталоги перечислены в пути к командам.
Довольно часто при работе с командной строкой, может понадобиться прописать временный путь к командам:
В данном примере мы добавили к содержимому в переменные окружения cmd %PATH% путь D:\work, и если теперь ввести на выполнение имя программы в каталоге D:\work, то она успешно запустится. Но помните, временный путь действует только в пределах текущего сеанса командной строки.
Как и при поиске пути, поиск в переменной cmd окружения производится с начала, и все имена расширений отделяются точкой с запятой. Нужно понимать, что если вы введете на выполнение команду notepad, а в системном каталоге есть notepad.com и notepad.exe, то произойдет вызов той программы, чье расширение находится первым. Исполняемыми считаются и файлы сценариев (при условии, что расширение сценария присутствует в списке), например, сценарии сервера Windows Script Host.
Просмотреть все cmd переменные среды и их содержимое, которые доступны в текущем сеансе командной строки можно с помощью команды set, просто введите ее и нажмите Enter.
Можно просмотреть не только через cmd переменные среды и их содержимое, но и через диалоговое окно системы Windows. Для этого войдите в свойства Мой Компьютер, вкладка дополнительно, внизу будет кнопка “Переменные среды”, нажимаем на нее и смотрим, что прописано в системе. В сервере сценариев Windows Script Host есть объект WScript.Shell, у которого в свою очередь присутствует свойство Environment, которое также позволяет получить информацию о переменных средах Windows, а также метод ExpandEnvironmentStrings которому как параметр передается имя среды (например, %path%, %windir%, %pathext%).
Переменные окружения cmd позволяют получить довольно много системной информации, хотя. ее вы смогли увидеть при выполнении команды set.
Спасибо за внимание. Автор блога Владимир Баталий
Видео
Переменные среды в CMD - Windows 10Скачать
Переменные среды окружения Windows: как создать новую или установить новое значение 👨💻🆘💻Скачать
4) Командная строка Windows - Переменные среды windowsСкачать
Системные переменные. Переменная PATH (теория)Скачать
Добавляем переменные среды в контекстное и где находятся переменные среды в windows 10Скачать
TCC_00_02 Компиляция программы на языке Си из командной строки. Переменная окружения path в cmdСкачать