Программным Освежающий переменной окружения Ссылки в PATH (Windows 10). Переменная среды path windows 10


windows - Как добавить папку в переменную среды "Путь" в Windows 10 (со снимками экрана)

В приведенном ниже руководстве мы хотим добавить примерную утилиту с именем mytool.exe, которая находится в C:\Users\NewFolderInPath\mytool.exe, так что каждый раз, когда я хочу выполнить утилиту mytool, мне не нужно указывать полный путь.

Я использовал это в качестве примера, вы можете заменить папку чем-то более реалистичным, как каталог JDK bin, расположенный здесь C:\Program Files\Java\{JDK_VERSION}\bin, для выполнения javac, keytool или всего, что вы хотите.

Шаг 1. Нажмите значок Windows

Шаг 2. Нажмите значок Settings

Шаг 3. Нажмите System

Шаг 4. Нажмите About

Шаг 5. Нажмите System info

Шаг 6. Нажмите Advanced system settings

Шаг 7. Нажмите Environment variables...

Шаг 8. Выберите строку Path и нажмите Edit

Шаг 9. Нажмите New, а затем нажмите Browse, затем на следующей панели, которая откроется, вам нужно выбрать нужную папку в Path. Для первоначальной предпосылки этого руководства я добавлю папку C:\Users\NewFolderInPath

Шаг 10. Нажмите OK и нажмите каждую кнопку OK, с которой вы столкнетесь, чтобы закрыть все предыдущие окна.

Шаг 11. Откройте command prompt (cmd), и теперь вы можете выполнить свою утилиту без указания полного пути.

ПРИМЕЧАНИЕ. Для каждой проблемы оставляйте комментарий ниже, и я отвечу, как только смогу. Удачи и счастливого кодирования:)

qaru.site

Ошибка 404 - Not Found

Похоже, что кто-то взял эту страницу и не вернул назад. Испытайте удачу на новой. Список чуть ниже.

It looks like somebody took this page away and did not put it back.

Вы нашли то, что искали на моём сайте?

ДА НЕТ

Или оцените по десятибальной шкале

Если сайт не помог, я извиняюсь за потраченное время - хочу заверить, что я стараюсь не попадать в нерелевантные запросы, но тем не менее не всегда успеваю обновлять ключевые слова. ну и контролировать поисковую выдачу, конечно, невозможно.

Например: у меня есть статья про аэропорт Хельсинки и про аэропорт Риги но в выдаче по Риге всё равно статья про Хельсинки.

Если статья Вам помогла, нажимайте ДА. Так я пойму, что переделывать её не нужно.

Занятно наблюдать в вебвизоре, как люди копируют текст, например вежливого отказа в трудоустройстве на английском но игнорируют кнопку ДА.

Сделаем поиск лучше! Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на www.andreyolegovich.ru cобака yandex.ru если Вы:
1. Хотите написать статью для моего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь со мной по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети:

www.andreyolegovich.ru

Программным Освежающий переменной окружения Ссылки в PATH (Windows 10)

Фоновые

У меня есть сценарий Python, который устанавливает переменные среды в реестре, то broadcasts an update using the WinSDK сказать системе переменная была обновлена. Это ведет себя аналогично setx и ручному интерфейсу переменных окружения. Это отлично работает в Windows 7.

Однако в Windows 10 это почти работает.

Вот мой вопрос

  1. я установить переменную окружения (XXX = C: \ my_dir)
  2. Я тогда вставить ссылку на XXX в переменную PATH через реестр. Я обязательно использовал тип REG_EXPAND_SZ.
  3. Затем я транслирую обновление.
  4. Когда я перезапускаю новую оболочку cmd.exe, я вижу мою новую переменную XXX (эхо% XXX%), однако ссылка на XXX не отображается должным образом при просмотре PATH.
  5. Чтобы обновить мой путь, мне нужно либо вручную перейти в интерфейс переменных окружения, и «отредактировать» путь, либо мне нужно войти в систему и выйти из системы.

Странно, что это влияет только на PATH. Если я добавлю ссылку на другую переменную (например, PYTHONPATH), все, как представляется, работает по назначению.

Что я Пробовал

  • Убийство explorer.exe tasktree и перезапуск
  • Sub обработки к Setx работ, но я хотел бы сохранить свою реализацию в чистом питоне.

Update Code Environment

import ctypes def update_environment(): """Uses ctypes to send a message to all windows that the environment has been updated. This has the same effect as pressing the 'OK' button in the windows environment variables dialog. References: https://support.microsoft.com/en-us/kb/104011""" wm_settingchange = 0x001A hwnd_broadcast = wintypes.HWND(0xffff) smto_abortifhung = 0x0002 env_message = ctypes.create_unicode_buffer('Environment') result = ctypes.windll.user32.SendMessageTimeoutW(hwnd_broadcast, wm_settingchange, 0, env_message, smto_abortifhung, 5000, 0) return result

Вопрос

Существуют ли какие-либо другие известные способы, чтобы заставить Windows 10 для обновления среды (в частности, ссылок окружения в PATH)?

python windows environment-variables windows-10 environment225

stackoverrun.com

python - Программно обновляющая среда Переменные ссылки в PATH (Windows 10)

Фон

У меня есть сценарий Python, который устанавливает переменные среды в реестр, а затем транслирует обновление с помощью WinSDK, чтобы сообщить системе, что переменная была обновлена. Это ведет себя аналогично setx и ручному интерфейсу переменных окружения. Это отлично работает в Windows 7.

Однако в Windows 10 он почти работает.

Вот моя проблема

  1. Я установил переменную среды (XXX = c:\my_dir)
  2. Затем я вставляю ссылку на XXX в переменную PATH через реестр. Я обязательно использовал тип REG_EXPAND_SZ.
  3. Затем я транслирую обновление.
  4. Когда я перезапускаю новую оболочку cmd.exe, я могу увидеть мою новую переменную XXX (эхо% XXX%), однако ссылка на XXX не была должным образом расширена, когда я просматриваю PATH.
  5. Чтобы обновить мой путь, мне нужно либо вручную перейти в интерфейс переменных окружения, и "отредактировать" путь, либо мне нужно войти в систему и выйти из системы.

Странно, что это влияет только на PATH. Если я добавлю ссылку на другую переменную (например, PYTHONPATH), все, как представляется, работает по назначению.

Что я пробовал

  • Убивание задачи explorer.exe и перезагрузка
  • Sub-processing out to setx работает, но я хотел бы сохранить свою реализацию в чистом python.

Обновить код среды

import ctypes def update_environment(): """Uses ctypes to send a message to all windows that the environment has been updated. This has the same effect as pressing the 'OK' button in the windows environment variables dialog. References: https://support.microsoft.com/en-us/kb/104011""" wm_settingchange = 0x001A hwnd_broadcast = wintypes.HWND(0xffff) smto_abortifhung = 0x0002 env_message = ctypes.create_unicode_buffer('Environment') result = ctypes.windll.user32.SendMessageTimeoutW(hwnd_broadcast, wm_settingchange, 0, env_message, smto_abortifhung, 5000, 0) return result

Вопрос

Существуют ли другие известные способы заставить окна 10 обновлять среду (в частности, ссылки на среду в PATH)?

источник поделиться

qaru.site

Переменные среды Windows - Комп-мастер

Переменные среды, используемые в пакетных (командных) файлах, позволяют обходиться без указания абсолютных путей к директориям. Например, если нам заранее неизвестна буква системного диска, мы всегда можем использовать переменную %systemdrive%, возвращающую букву диска, на котором установлена ОС. Также, переменные применяются для оптимизации кода - многократно повторяющемуся параметру (например, разделе реестра) можно назначить короткую переменную и использовать ее. В данной статье подробно рассматриваются различные приемы работы с переменными, а также способы изменения и создания новых переменных. Теперь обо всем по порядку.

Системные переменные

Название Тип Описание
%ALLUSERSPROFILE% локальная Возвращает размещение профиля «All Users». В Windows 7 возвращает путь к папке C:\ProgramData\.
%APPDATA% системная Возвращает используемое по умолчанию размещение данных приложений. В Windows XP это C:\Documents and Settings\%UserName%\Application Data. В Windows 7 - C:\Users\%UserName%\AppData\Roaming.
%CD% локальная Указывает путь к текущему каталогу. Идентична команде CD без аргументов.
%CLIENTNAME% локальная динамическая Переменная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа.
%CMDCMDLINE% локальная Точная команда, использованная для запуска текущего cmd.exe.
%CMDEXTVERSION% системная Версия текущего Command Processor Extensions.
%COMMONPROGRAMFILES% системная Расположение каталога "Common Files" (обычно %ProgramFiles%\Common Files).
%COMMONPROGRAMFILES(x86)% системная Расположение каталога "Common Files" в Program Files (x86) для 64-разрядной ОС (обычно %ProgramFiles(x86)%\Common Files).
%COMPUTERNAME% системная Имя компьютера
%COMSPEC% системная Путь к исполняемому файлу командного процессора (shell).
%DATE% системная Возвращает текущую дату. Использует тот же формат, что и команда date /t. Создаётся командой Cmd.exe.
%ERRORLEVEL% системная Возвращает код ошибки последней использовавшейся команды. Значение, не равное нулю, обычно указывает на наличие ошибки.
%HOMEDRIVE% системная Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMEPATH% системная Возвращает полный путь к основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMESHARE% системная Возвращает сетевой путь к общему основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%LOCALAPPDATA% системная Возвращает используемое по умолчанию локальное размещение данных приложений (C:\Users\%UserName%\AppData\Local).
%LOGONSERVER% локальная Имя контроллера домена, использовавшегося для авторизации текущего пользователя.
%NUMBER_OF_PROCESSORS% системная Количество процессоров в системе (фактически, количество ядер).
%OS% системная Название операционной системы. Windows XP и Windows 2000 отображаются как Windows_NT.
%PATH% системная Указывает путь поиска исполняемых файлов.
%PATHEXT%
системная Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
%PROCESSOR_ARCHITECTURE% системная Архитектура процессора. Возможные варианты: x86, IA64, AMD64.
%PROCESSOR_IDENTIFIER% системная Описание процессора (в Интернете часто встречается ошибочное написание PROCESSOR_IDENTFIER - пропущена буква).
%PROCESSOR_LEVEL% системная Номер модели процессора.
%PROCESSOR_REVISION% системная Ревизия процессора.
%PROGRAMDATA% системная Возвращает путь к каталогу C:\ProgramData\ (аналогично ALLUSERSPROFILE).
%PROGRAMFILES% системная Путь к каталогу Program Files.
%PROGRAMFILES(x86)% системная Путь к каталогу Program Files (x86) в 64-разрядных системах для приложений архитектуры x86.
%PROMPT% локальная Возвращает параметры командной строки для текущего интерпретатора. Создаётся командой Cmd.exe.
%PUBLIC% системная В Windows 7 возвращает путь к каталогу C:\Users\Public.
%RANDOM% системная Случайное десятичное число от 0 до 32767. Генерируется Cmd.exe.
%SAFEBOOT_OPTION% системная Существует только в Безопасном режиме. Принимает значение типа безопасного режима в котором работает система. В Безопасном режиме и Безопасном режиме с поддержкой командной строки принимает значение MINIMAL. В Безопасном режиме с поддержкой сетевых драйверов принимает значение Network.
%SESSIONNAME% локальная Хранит имя активного пользовательского сеанса. При локальном входе имеет значение "Console", при удаленном доступе имеет вид RDP-Tcp#<номер сеанса>
%SYSTEMDRIVE% системная Диск, на котором расположен корневой каталог Windows.
%SYSTEMROOT% системная Путь к корневому каталогу Windows.
%TEMP% и %TMP% системная и локальная Возвращает временные каталоги, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно совпадают.
%TIME% системная Возвращает текущее время. Использует тот же формат, что и команда time /t. Создаётся командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time.
%USERDOMAIN% локальная Имя домена, которому принадлежит текущий пользователь.
%USERNAME% локальная Имя текущего пользователя.
%USERPROFILE% локальная Путь к профилю текущего пользователя.
%WINDIR% системная Каталог, в котором установлена Windows.

Результат

%ALLUSERSPROFILE% = C:\ProgramData

%APPDATA% = C:\Users\Name\AppData\Roaming

%CommonProgramFiles% = C:\Program Files (x86)\Common Files

%CommonProgramFiles(x86)% = C:\Program Files (x86)\Common Files

%CommonProgramW6432% = C:\Program Files\Common Files

%COMPUTERNAME% = Comp.Name

%ComSpec% = C:\Windows\system32\cmd.exe

%HOMEDRIVE% = C:

%HOMEPATH% = \Users\Name

%LOCALAPPDATA% = C:\Users\Name\AppData\Local

%LOGONSERVER% = \\Comp.Name

%OS% = Windows_NT

%Path% = C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\ (примерно)

%PATHEXT% = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC (примерно)

%ProgramData% = C:\ProgramData

%ProgramFiles% = C:\Program Files (x86)

%ProgramFiles(x86)% = C:\Program Files (x86)

%ProgramW6432% = C:\Program Files

%PUBLIC% = C:\Users\Public

%SystemDrive% = C:

%SystemRoot% = C:\Windows

%TEMP% = C:\Users\Name\AppData\Local\Temp (по умолчанию)%TEMP% = %SystemDrive%\Temp Твик -[HKEY_CURRENT_USER\Environment]"TEMP"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,00,76,\00,65,00,25,00,5c,00,54,00,65,00,6d,00,70,00,00,00

%TMP% = C:\Users\Name\AppData\Local\Temp (по умолчанию)%TMP% = %SystemDrive%\Temp Твик -[HKEY_CURRENT_USER\Environment]"TMP"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,00,76,00,\65,00,25,00,5c,00,54,00,65,00,6d,00,70,00,00,00

%USERDOMAIN% = Name Dom.

%USERNAME% = Name

%USERPROFILE% = C:\Users\Name

%windir% = C:\Windows

Для версии x86: заменить 3 строки на 1

%CommonProgramFiles% = C:\Program Files (x86)\Common Files%CommonProgramFiles(x86)% = C:\Program Files (x86)\Common Files } %CommonProgramFiles% = C:\Program Files\Common Files%CommonProgramW6432% = C:\Program Files\Common Filesи%ProgramFiles% = C:\Program Files (x86)%ProgramFiles(x86)% = C:\Program Files (x86) } %ProgramFiles% = C:\Program Files%ProgramW6432% = C:\Program Files

Примечания

Чтобы получить доступ к значению переменной, необходимо поставить знак % перед её названием и после него, например:

echo %PROCESSOR_ARCHITECTURE%

Чтобы установить значение переменной:

SET TEMP=C:\TEMP

Кроме того, с переменными среды можно работать, нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» (контекстное меню значка «Мой компьютер» → пункт «Свойства»).

Также необходимо помнить, что, в отличие от UNIX-систем, в DOS и в стандартной командной строке Windows переменные среды не наследуются запускаемыми процессами, а используются совместно. Это позволяет, например, возвращать через них результаты работы программ, но, с другой стороны, создаёт возможность порчи или переполнения. Особенно актуально переполнение для переменной PATH, поскольку она часто дополняется при работе различных скриптов. При возникновении такого переполнения достаточно просто перезапустить интерпретатор командной строки. Интерпретаторы, портированные из UNIX-систем (например, Z-shell), такой проблеме не подвержены.

Получить значение переменной в программном коде можно с помощью метода ExpandEnvironmentStrings COM-объекта WScript.Shell:

WScriptShell = ObjCreate("WScript.Shell") UserName = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")

Следует учитывать, что набор значений переменных среды получается процессом во время его запуска, все запускаемые им подчиненные процессы получают значения переменных из этого набора, если второй процесс (независимый от первого) изменяет значение переменной среды или создает новую переменную, эти изменения не будут доступны первому процессу.

Значения переменных среды LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH устанавливаются при открытии сеанса на основании значений в ветке реестра [HKEY_CURRENT_USER\Volatile Environment].

Значения глобальных переменных среды типа PATH, TEMP и пр. хранятся в ветке реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment].

Классификация переменных среды

Справка Windows различает два типа переменных среды: системные и локальные. Системные переменные возвращают одинаковые значения для всех пользователей. К примеру, %systemdrive% - буква системного диска, и она для всех пользователей одинакова. А вот значения, возвращаемые локальными переменными, варьируются в зависимости от вошедшего в систему пользователя. Например, %userprofile% может возвращать C:\Documents and Settings\ТекущийПользователь, где ТекущийПользователь - название учетной записи пользователя.

Узнать, какие переменные среды в операционной системе вам доступны и какие значения в данный момент им присвоены, вам поможет команда SET, запущенная из командной строки без параметров (Пуск – Выполнить – cmd – set). В рамках данной статьи нас интересуют переменные, обозначающие путь к различным папкам (каталогам). Чуть подробнее о некоторых из них ниже:

Использование переменных в пакетных файлах

Начнем с простенького примера:

DEL /F /Q "%AllUsersProfile%\Главное меню\Активация Windows.lnk"DEL /F /Q "%AllUsersProfile%\Главное меню\WindowsUpdate.lnk" DEL /F /Q "%systemroot%\system32\*.scr"

В этом примере я удаляю вышеуказанные ярлыки, которые маячат перед глазами в меню Пуск, используя переменную %AllUsersProfile%, а также все файлы с расширением SCR из директории Windows\system32, используя переменную %SystemRoot%. Вместо DEL /F /Q, как вы понимаете, может быть все что угодно: от команды копирования COPY до команды запуска установки нужного нам приложения со всеми параметрами командной строки, если это потребуется.

Во всех командах я специально использовал "кавычки" – это не случайно. Весь путь, включая переменные, надо заключать в кавычки, если вы используете пути, содержащие пробелы. Даже если сама переменная кавычек не содержит, после ее разбора системой в пути могут появится пробелы (например, %ProgramFiles% в C:\Program Files). В любом случае кавычки лучше использовать – это является хорошим тоном оформления командных файлов.

Как задать свои переменные

Разобранный выше пример использовал уже существующие переменные среды. И вы, вероятно, обратили внимание на символы процентов, окружающие названия переменных. Эти символы нужны для того, чтобы разрешить подстановку значений переменной в командной строке или в пакетном файле. Символы процентов указывают на то, что Cmd.exe должна обратиться к значениям переменных, а не делать посимвольное сравнение. Ниже вы увидите, как это работает. Задать свои переменные в пакетном файле можно командой SET.

Команда SET

Вы можете задать в командном файле свои переменные при помощи все той же команды SET.

Чтобы добавить переменную, введите в командной строке:

set имя_переменной=значение

Чтобы отобразить переменную, введите в командной строке:

set имя_переменной

Чтобы удалить переменную, введите в командной строке:

set имя_переменной=

Например,

SET mydir=D:\Files\Work

задает переменную mydir, которая будет возвращать путь к указанной папке. Подробнее о команде вы можете прочитать из set /?.

Эти переменные могут быть созданы, к примеру, для любых путей, надо лишь задать или найти алгоритм присвоения переменной в каждой частной ситуации, пользуясь готовыми примерами или создавая свои на их основе. Как правило, такие переменные создаются в текущей сессии командными файлами с помощью некоторых операторов.

Пример назначения переменных в файле RunOnceEx.cmd, импортирующем параметры в реестр

@echo offSET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceExSET i=100

REG ADD %KEY% /V TITLE /D "Installing Applications" /f

REG ADD %KEY%\%i% /VE /D "WinRar 3.51" /fREG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /fREG ADD %KEY%\%i% /V 2 /D "REGEDIT /S %systemdrive%\install\Software\rar_set.reg /s" /fSET /A i+=1

В данном скрипте командой SET задаются две переменных - %i% и %KEY%. Обратите внимание, что задаются они без символов процентов, а вот для обращения к ним %% уже нужны. Переменная %KEY% служит для упрощения и оптимизации кода. Она остается неизменной на протяжении текущей командной сессии, что избавляет от необходимости каждый раз включать в код раздел реестра. Каждый раз, когда в коде встречается %KEY%, будет происходить ее замена на HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx. А вот %i% служит для последовательной нумерации разделов реестра. При начальном значении 100 переменная увеличивается на единицу при помощи команды SET /A i+=1 после каждого блока команд, что дает последовательность 100, 101, 102 и т.д. Таким образом, строка

REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f

на самом деле отработает так

REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\100 /V 1 /D "C:\install\Software\WinRar.exe /s" /f

Обратите внимание, что во фрагменте файла также используется системная переменная %systemdrive%, которая соответствует букве системного диска.

Пример назначения переменных в командном файле, устанавливающем приложение с CD:

for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:start /wait “%CDROM%\INSTALL\DVDTools\NBRom\Nero.exe”

В этом примере для всех перечисленных дисков происходит поиск определенного файла (WIN51). В случае его обнаружения на одном из дисков, последнему присваивается переменная %CDROM%, а далее уже происходит установка программного обеспечения с использованием пути, заданного созданной переменной.

Изменение переменных среды и добавление собственных переменных.

Как уже было сказано выше, действие переменных, заданных командой set, ограничивается текущей командной сессией. Если вы хотите получить из временной переменной системную или пользовательскую, то надо ее прописать в реестр. Сделать это тоже можно различными способами.

Утилита setenv

Утилита работает из командной строки. Работать с утилитой очень просто (setenv /?).

Пользовательские настройки: setenv -u имя_переменной значениеСистемные настройки: setenv -m имя_переменной значениеНастройки Default User: setenv -d имя_переменной значениеНастройки текущего пользовательского сеанса: setenv -v имя_переменной значение

Допустим, если нужно получить переменную %temp% еще на стадии установки, то можно это проделать из cmdlines.txt, например:

:: Creating and Setting Temp folder...md %systemdrive%\Tempsetenv -u Temp %systemdrive%\Tempsetenv -u Tmp %systemdrive%\Temp

Утилита удобна тем, что после задания переменной ею можно пользоваться сразу. Ну почти сразу - в следующей командной сессии. Чтобы использовать ее в текущей сессии, можно задействовать старую знакомую команду set:

:: Creating #EgOrus# varset EgOrus=D:\EgOrussetenv -u EgOrus %EgOrus%
Импорт параметров в реестр

Если же пойти путем внесения изменений в реестр после первого входа в систему, то переменные начнут "работать" только после перезагрузки или завершения пользовательского сеанса. Конечно, в процессе автоустановки можно импортировать желаемые параметры на Т-12 и обойти данную проблему. Если же вы не собираетесь использовать назначенную переменную в текущем пользовательском сеансе, то импорт в реестр вас тоже может устроить. Процесс импорта REG-файлов описывать повторно не буду, а рассмотрю команду REG ADD на конкретном примере.

Допустим, вы заинтересованы иметь в системе переменную %CDROM% на постоянной основе и установить ее в процессе установки приложений с CD. Следуя коду, приведенному выше, нужно после определения переменной назначить ее системной.

for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v cdrom /d %CDROM% /f

После нахождения файла WIN51 диску, на котором он был найден, присваивается локальная переменная %CDROM%, которая тут же и назначается в виде постоянной системной переменной посредством импорта в реестр. Вы уже узнали. где в реестре хранятся настройки системных переменных. Настройки пользовательских переменных хранятся в HKCU\Environment. Пути, возвращаемые переменными %PROGRAMFILES% и %COMMONPROGRAMFILES%, можно посмотреть в параметрах ProgramFilesDir и CommonFilesDir в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion, но менять их там не следует. Каталоги установки программ (отличные от %SystemDrive%\Program Files) нужно конфигурировать через.

Резюме

Командная оболочка Windows (cmd.exe) - это весьма мощный инструмент работы с системой. При помощи пакетных файлов можно автоматизировать изрядное количество задач, и именно поэтому они часто используются для автоматической установки Windows. Умелое использование переменных в пакетных файлах позволяет решать широкий спектр вопросов. Работа с командной оболочкой становится более эффективной и одновременно упрощается код пакетных файлов. Другие примеры использования переменных вы можете найти на страницах сайта.

Терминология

Командная оболочка — это отдельный программный продукт, который обеспечивает прямую связь между пользователем и операционной системой. Текстовый пользовательский интерфейс командной строки предоставляет среду, в которой выполняются приложения и служебные программы с текстовым интерфейсом.

cmd.exe - интерпретатор команд, который командная оболочка ОС Windows использует для перевода введенной команды в формат, понятный системе.

Командная сессия может инициироваться как запуском cmd.exe, так и запуском пакетного файла. Иными словами создается текущая командная оболочка. Соответственно выход из этой оболочки (к примеру, окончание работы пакетного файла) завершает командную сессию.

Пользовательский сеанс (пользовательская сессия) начинается с момента входа пользователя в систему (log on) и завершается при выходе (log off).

windows-macos-1.ucoz.ru

Добавление местоположений программ в переменную среды PATH

Дата последнего изменения: 9 марта 2015 г.

Применимо к: SharePoint Foundation 2010

В этой статье объясняется, как добавить определенные пути, критически важные для развертывания SharePoint Foundation, в переменную среды PATH компьютера разработчика.

Рекомендуемые пути

Рекомендуется добавить в переменную PATH следующие пути:

Добавляемый путь

Средства, находящиеся по добавляемому пути

C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN\

Несколько программ для разработки SharePoint Foundation, в том числе psconfig.exe, spmetal.exe и stsadm.exe.

C:\Program Files (x86) \Microsoft SDKs\Windows\v7.0A\Bin\x64\

Множество общих средств разработки, в том числе gacutil.exe, ildasm.exe, sn.exe, sqlmetal.exe и windiff.exe.

Действия для добавления пути в переменную среды PATH

  1. В меню Пуск щелкните правой кнопкой мыши пункт Компьютер.

  2. В контекстном меню выберите Свойства.

  3. В диалоговом окне Система выберите Дополнительные параметры системы.

  4. На вкладке Дополнительно диалогового окна Свойства системы нажмите кнопку Переменные среды.

  5. В поле Системные переменные диалогового окна Переменные среды прокрутите список до переменной Path, а затем выберите ее.

  6. Нажмите нижнюю из двух кнопок Изменить в этом диалоговом окне.

  7. В диалоговом окне Изменение системной переменной прокрутите строку в поле Значение переменной до конца и добавьте точку с запятой (;).

  8. Добавьте новый путь после точки с запятой.

  9. Нажмите кнопку ОК в трех последовательных диалоговых окнах, а затем закройте диалоговое окно Система.

Совет

Если среда Visual Studio открыта во время внесения изменений в системные переменные среды, изменения не будут обнаружены, пока среда не будет закрыта и открыта заново.

technet.microsoft.com