Path переменная среды: …что такое переменная среды PATH? • А хотите, я расскажу вам…

Содержание

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





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

Дата последнего изменения: 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 открыта во время внесения изменений в системные переменные среды, изменения не будут обнаружены, пока среда не будет закрыта и открыта заново.






о переменных среды — PowerShell


  • Статья

  • Чтение занимает 9 мин

Краткое описание

Сведения о доступе к переменным среды и управлении ими в PowerShell.

Подробное описание

Переменные среды хранят данные, используемые операционной системой и другими программами. Например, WINDIR переменная среды содержит расположение каталога установки Windows. Программы могут запрашивать значение этой переменной, чтобы определить, где находятся файлы операционной системы Windows.

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

Примечание

В отличие от Windows, в именах переменных среды в macOS и Linux учитывается регистр. Например, $env:Path и $env:PATH — это разные переменные среды на платформах, отличных от Windows.

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

В Windows переменные среды можно определить в трех областях:

  • Область компьютера (или системы)
  • Область пользователей
  • Область процесса

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

Изменение переменных среды в PowerShell влияет только на текущий сеанс. Это поведение похоже на поведение команды в командной Set оболочке Windows и Setenv команды в средах на основе UNIX. Чтобы изменить значения в области Компьютер или Пользователь, необходимо использовать методы класса System.Environment .

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

PowerShell предоставляет несколько различных методов использования переменных среды и управления ими.

  • Синтаксис переменной
  • Командлеты поставщика среды и элемента
  • Класс .NET System.Environment

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

Вы можете отображать и изменять значения переменных среды с помощью следующего синтаксиса:

$Env:<variable-name>

Например, чтобы отобразить значение переменной WINDIR среды, выполните следующие действия:

$Env:windir
C:\Windows

В этом синтаксисе знак доллара ($) обозначает переменную, а имя диска (Env:) — переменную среды, за которой следует имя переменной (windir).

Вы можете создать и обновить значение переменных среды с помощью следующего синтаксиса:

$Env:<variable-name> = "<new-value>"

Например, чтобы создать Foo переменную среды, выполните следующие действия:

$Env:Foo = 'An example'

Так как переменные среды всегда являются строками, их можно использовать так же, как и любую другую переменную, содержащую строку. Например:

"The 'Foo' environment variable is set to: $Env:Foo"
$Env:Foo += '!'
$Env:Foo
The 'Foo' environment variable is set to: An example
An example!

Так как переменная среды не может быть пустой строкой, при установке для нее $null значения или пустой строки она удаляется. Например:

$Env:Foo = ''
$Env:Foo | Get-Member -MemberType Properties
Get-Member : You must specify an object for the Get-Member cmdlet.
At line:1 char:12
+ $env:foo | Get-Member
+            ~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-Member], InvalidOperationException
    + FullyQualifiedErrorId : NoObjectInGetMember,Microsoft. PowerShell.Commands.GetMemberCommand

Get-Member возвращает ошибку, так как переменная среды была удалена.
Вы увидите, что он не возвращает ошибку при использовании в пустой строке:

'' | Get-Member -MemberType Properties
   TypeName: System.String
Name   MemberType Definition
----   ---------- ----------
Length Property   int Length {get;}

Дополнительные сведения о переменных в PowerShell см. в разделе about_Variables.

Использование поставщика среды и командлетов item

Поставщик среды PowerShell предоставляет интерфейс для взаимодействия с переменными среды в формате, похожем на диск файловой системы. Она позволяет получать, добавлять, изменять, очищать и удалять переменные и значения среды в PowerShell.

Например, чтобы создать Foo переменную среды со значением Bar:

New-Item -Path Env:\Foo -Value 'Bar'
Name                           Value
----                           -----
Foo                            Bar

Можно также скопировать переменную среды с Copy-Itemпомощью , задать значение переменной среды с Set-Itemпомощью , перечислить переменные среды с Get-Itemпомощью и удалить переменную среды с помощью Remove-Item.

Copy-Item -Path Env:\Foo -Destination Env:\Foo2 -PassThru
Set-Item -Path Env:\Foo2 -Value 'BAR'
Get-Item -Path Env:\Foo*
Remove-Item -Path Env:\Foo* -Verbose
Name                           Value
----                           -----
Foo2                           Bar
Name                           Value
----                           -----
Foo2                           BAR
Foo                            Bar
VERBOSE: Performing the operation "Remove Item" on target "Item: Foo2".
VERBOSE: Performing the operation "Remove Item" on target "Item: Foo".

Дополнительные сведения об использовании поставщика среды для управления переменными среды см. в разделе about_Environment_Provider.

Использование методов System.Environment

Класс System.Environment предоставляет методы GetEnvironmentVariable и SetEnvironmentVariable для получения и изменения переменных среды.

В следующем примере создается новая переменная Fooсреды со значением Bar , а затем возвращается ее значение.

[Environment]::SetEnvironmentVariable('Foo','Bar')
[Environment]::GetEnvironmentVariable('Foo')
Bar

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

[Environment]::SetEnvironmentVariable('Foo','')
[Environment]::GetEnvironmentVariable('Foo')

Дополнительные сведения о методах класса System.Environment см. в разделе Методы среды.

Сохранение изменений в переменных среды

В Windows существует три способа внесения постоянного изменения в переменную среды: установка их в профиле, использование метода SetEnvironmentVariable и использование системного панель управления.

Сохранение переменных среды в профиле

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

Например, чтобы создать CompanyUri переменную среды и обновить Path ее, включив в нее папку C:\Tools , добавьте следующие строки в профиль PowerShell:

$Env:CompanyUri = 'https://internal.contoso.com'
$Env:Path += ';C:\Tools'

Примечание

В Linux или macOS двоеточие (:) используется вместо точки с запятой(;) для отделения нового пути от пути, предшествующего ему в списке.

Вы можете получить путь к профилю PowerShell с помощью автоматической переменной $PROFILE . Дополнительные сведения о профилях см. в разделе about_Profiles.

Сохранение переменных среды с помощью SetEnvironmentVariable

В Windows можно указать область для метода SetEnvironmentVariable в качестве третьего параметра, чтобы задать переменную среды в этой области. Области компьютера и пользователя сохраняются за пределами текущего процесса, что позволяет сохранить новую или измененную переменную среды.

Например, чтобы сохранить новую переменную Foo среды со значением Barв области компьютера, выполните следующие действия.

[Environment]::SetEnvironmentVariable('Foo', 'Bar', 'Machine')

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

[Environment]::SetEnvironmentVariable('Foo', '', 'Machine')

Сохранение переменных среды с помощью system панель управления

В системном панель управления можно добавлять или изменять существующие переменные среды в областях Пользователь и Система (компьютер). Windows записывает эти значения в реестр, чтобы они сохранялись в сеансах и перезапусках системы.

Чтобы внести постоянное изменение переменной среды в Windows с помощью системного панель управления:

  1. Откройте системный панель управления.
  2. Выберите Система.
  3. Выберите Дополнительные параметры системы.
  4. Перейдите на вкладку Дополнительно .
  5. Выберите Переменные среды….
  6. Внесите нужные изменения.

Переменные среды PowerShell

Функции PowerShell могут использовать переменные среды для хранения пользовательских настроек.
Эти переменные работают как переменные предпочтения, но наследуются дочерними сеансами сеансов, в которых они созданы. Дополнительные сведения о переменных предпочтения см. в разделе about_Preference_Variables.

К переменным среды, в которых хранятся предпочтения, относятся:

  • POWERSHELL_TELEMETRY_OPTOUT

    Чтобы отказаться от телеметрии, задайте для переменной trueсреды значение , yesили 1.

    Дополнительные сведения см. в разделе about_Telemetry.

  • POWERSHELL_DISTRIBUTION_CHANNEL

    Начиная с PowerShell 7.2, эта переменная среды задается пакетами установщика для записи метода и источника установки для PowerShell.

    Эти сведения включаются в данные телеметрии, отправляемые в Майкрософт. Пользователи не должны изменять это значение.

  • POWERSHELL_UPDATECHECK

    Настроить уведомления об обновлениях можно с помощью переменной среды POWERSHELL_UPDATECHECK. Поддерживаются следующие значения.

    • Off отключает функцию уведомлений об обновлениях
    • Default то же самое, что не определяет POWERSHELL_UPDATECHECK:
      • В общедоступных выпусках выводятся уведомления об обновлениях для общедоступных выпусков.
      • В предварительных выпусках и релизах-кандидатах выводятся уведомления об обновлениях для общедоступных и предварительных выпусков.
    • LTS только уведомляет об обновлениях общедоступных выпусков долгосрочного обслуживания (LTS)

    Дополнительные сведения см. в разделе about_Update_Notifications.

  • PSExecutionPolicyPreference

    Хранит набор политик выполнения для текущего сеанса. Эта переменная среды существует только при установке политики выполнения для одного сеанса.
    Это можно сделать двумя разными способами.

    • Запустите сеанс из командной строки с помощью параметра ExecutionPolicy , чтобы задать политику выполнения для сеанса.

    • Используйте командлет Set-ExecutionPolicy. Используйте параметр Scope со значением Process.

      Подробнее см. в разделе about_Execution_Policies.

  • PSModulePath

    Переменная $env:PSModulePath среды содержит список расположений папок, в которых выполняется поиск модулей и ресурсов. В Windows список расположений папок разделяется символом с запятой (;). На платформах, отличных от Windows, двоеточие (:) разделяет расположения папок в переменной среды.

    По умолчанию назначенные $env:PSModulePath действующие расположения:

    • Расположения на уровне системы. Эти папки содержат модули, поставляемые с PowerShell. Модули хранятся в расположении $PSHOME\Modules . Кроме того, это расположение, где установлены модули управления Windows.

    • Модули, установленные пользователем. Это модули, установленные пользователем.
      Install-Module имеет параметр Scope , позволяющий указать, установлен ли модуль для текущего пользователя или для всех пользователей. Дополнительные сведения см. в разделе Install-Module.

      • В Windows расположением области CurrentUser для конкретного пользователя является $HOME\Documents\PowerShell\Modules папка. Область AllUsers находится $env:ProgramFiles\PowerShell\Modulesв расположении .
      • В системах, отличных от Windows, расположением пользовательской области CurrentUser является $HOME/.local/share/powershell/Modules папка. Область AllUsers находится /usr/local/share/powershell/Modulesв расположении .

    Кроме того, программы установки, устанавливающие модули в других каталогах, таких как каталог Program Files, могут добавлять свои расположения к значению $env:PSModulePath.

    Дополнительные сведения см. здесь: about_PSModulePath.

  • PSModuleAnalysisCachePath

    PowerShell позволяет управлять файлом, который используется для кэширования данных о модулях и их командлетах. Кэш считывается при запуске при поиске команды и записывается в фоновом потоке через некоторое время после импорта модуля.

    Расположение кэша по умолчанию:

    • Windows PowerShell 5.1: $env:LOCALAPPDATA\Microsoft\Windows\PowerShell.
    • PowerShell 6.0 и более поздних версий: $env:LOCALAPPDATA\Microsoft\PowerShell
    • По умолчанию, отличном от Windows: ~/.cache/powershell

    Имя файла по умолчанию для кэша — ModuleAnalysisCache. Если у вас установлено несколько экземпляров PowerShell, имя файла включает шестнадцатеричный суффикс, чтобы иметь уникальное имя файла для каждой установки.

    Примечание

    Если обнаружение команд работает неправильно, например IntelliSense показывает команды, которые не существуют, можно удалить файл кэша. Кэш повторно создается при следующем запуске PowerShell.

    Чтобы изменить расположение кэша по умолчанию, задайте переменную среды перед запуском PowerShell. Изменения в этой переменной среды влияют только на дочерние процессы. Значение должно быть полным путем (включая имя файла), на создание и запись файлов по которому у среды PowerShell есть разрешение.

    Чтобы отключить файловый кэш, укажите в качестве этого значения недопустимое расположение, например:

    # `NUL` here is a special device on Windows that can't be written to,
    # on non-Windows you would use `/dev/null`
    $env:PSModuleAnalysisCachePath = 'NUL'
    

    При этом будет задан путь к устройству NUL . PowerShell не может выполнить запись в путь, но ошибка не возвращается. Вы можете просмотреть сообщения об ошибках с помощью трассировки:

    Trace-Command -PSHost -Name Modules -Expression {
      Import-Module Microsoft. PowerShell.Management -Force
    }
    
  • PSDisableModuleAnalysisCacheCleanup

    При записи кэша анализа модулей PowerShell проверяет наличие модулей, которые больше не существуют, чтобы избежать неоправданно большого кэша. Иногда эти проверки нежелательно. В этом случае их можно отключить, задав для этой переменной среды значение 1.

    Установка этой переменной среды вступает в силу сразу же в текущем процессе.

Другие переменные среды, используемые PowerShell

Сведения о пути

  • PATH

    Переменная $env:PATH среды содержит список расположений папок, в которые операционная система ищет исполняемые файлы. В Windows список расположений папок разделяется символом с запятой (;). На платформах, отличных от Windows, двоеточие (:) разделяет расположения папок в переменной среды.

  • PATHEXT

    Переменная $env:PATHEXT содержит список расширений файлов, которые Windows считает исполняемыми файлами. Когда файл скрипта с одним из перечисленных расширений выполняется из PowerShell, скрипт выполняется в текущей консоли или сеансе терминала. Если расширение файла отсутствует в списке, скрипт запускается в новом сеансе консоли.

    Чтобы убедиться, что скрипты для другого языка сценариев выполняются в текущем сеансе консоли, добавьте расширение файла, используемое языком сценариев. Например, чтобы запустить скрипты Python в текущей консоли, добавьте .py расширение в переменную среды. Чтобы Windows поддерживала .py расширение в качестве исполняемого файла, необходимо зарегистрировать его с помощью ftype команд и assoc командной оболочки CMD. В PowerShell нет прямого метода для регистрации обработчика файлов. Дополнительные сведения см. в документации по команде ftype .

    Сценарии PowerShell всегда запускают в текущем сеансе консоли. Добавлять расширение не нужно .PS1 .

  • Переменные XDG

    На платформах, отличных от Windows, PowerShell использует следующие переменные среды XDG в соответствии со спецификацией базового каталога XDG.

    • XDG_CONFIG_HOME
    • XDG_DATA_HOME
    • XDG_CACHE_HOME

Функции терминала

Начиная с PowerShell 7.2, следующие переменные среды можно использовать для управления функциями виртуального терминала, такими как escape-последовательности ANSI, которые окрашивают выходные данные. Поддержку escape-последовательностей ANSI можно отключить с помощью переменных среды TERM или NO_COLOR.

  • ТЕРМИН

    Следующие значения $env:TERM изменяют поведение следующим образом:

    • dumb -Задает $Host.UI.SupportsVirtualTerminal = $false
    • xterm-mono -Задает $PSStyle.OutputRendering = PlainText
    • xtermm -Задает $PSStyle.OutputRendering = PlainText
  • NO_COLOR

    Если $env:NO_COLOR существует, то $PSStyle. OutputRendering параметру присваивается значение PlainText. Дополнительные сведения о переменной среды NO_COLOR см. в разделе https://no-color.org/.

См. также раздел

  • about_Environment_Provider
  • about_Profiles
  • about_Variables
  • Методы среды

командная строка — установка пользовательской переменной среды PATH в Windows 10 не имеет никакого эффекта

У меня странная проблема с настройкой пользовательской переменной PATH. C:\Program Files\ghcup\bin — это путь к моему исполняемому файлу, который я хочу добавить в свой пользовательский PATH.

Я пробовал setx /M path "%PATH%;C:\Program Files\ghcup\bin" с помощью командной строки администратора. Это правильно устанавливает путь для администратора, поэтому, когда я запускаю echo %PATH% из командной строки администратора, C:\Program Files\ghcup\bin действительно отображается. Все работает нормально, пока я запускаю исполняемый файл из командной строки администратора.

Однако у меня проблема в том, что мой пользовательский PATH не установлен.
Я попытался использовать графический интерфейс, чтобы установить ПУТЬ пользователя. Кажется, что путь установлен в графическом интерфейсе, но он не отображается, когда я запускаю echo %PATH% из командной строки пользователя.

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

Я прочитал этот пост, который решает ту же проблему, и я проверил неправильные пути и то, что моя переменная PATH в реестре имеет значение REG_SZ.

  • окна
  • командная строка
  • переменные среды
  • путь

1

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

здесь у вас есть более подробная информация: https://www.opentechguides.com/how-to/article/windows-10/113/windows-10-set-path.html

4

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Как установить системные переменные среды в Windows 10?

Если под «системными переменными среды» вы конкретно ссылаетесь на общесистемные переменные среды , то это уже обсуждалось в других ответах. Однако, если вы хотите редактировать как общесистемные, так и пользовательские переменные среды, то большинство (если не все) этих ответов в общем случае неприменимы.

Переход через «Система», а затем «Дополнительные параметры системы» -> «Переменные среды» будет работать только для учетных записей из группы Администраторы , поскольку только такие учетные записи имеют доступ к «Дополнительным параметрам системы».

Если вы попытаетесь сделать это из учетной записи обычного пользователя , то попытка доступа к «Дополнительным системным настройкам» вызовет запрос UAC с запросом пароля администратора. Если вы введете пароль, «Дополнительные параметры системы» будут успешно открыты, но любые внесенные вами пользовательские изменения будут применяться к соответствующей учетной записи администратора (!), а не к вашей исходной учетной записи пользователя.

Для решения этой проблемы (т. е. для того, чтобы дать обычным пользователям возможность редактировать свои собственные переменные среды) Windows предоставляет другой способ доступа к диалоговому окну «Переменные среды».

Открыть Панель управления . Откройте апплет учетных записей пользователей . В левой части этого апплета вы увидите ссылку «Изменить мои переменные среды ». Щелкните эту ссылку, и вы попадете в то же диалоговое окно «Переменные среды» для переменных среды вашего пользователя.

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

Это правильный способ редактирования переменных среды во всех версиях Windows после UAC, а не то, что предлагается в большинстве ответов выше.


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

В настоящее время одним из обходных путей для неадминистративных учетных записей является добавление вашей учетной записи пользователя в группу «Администраторы », выход из системы, повторный вход, редактирование переменных с помощью метода «Система» -> «Дополнительные параметры системы», а затем снова забрать административные права…

Альтернативный обходной путь — использовать функции PowerShell, как описано здесь
https://technet.