Я не понимаю этого. Поэтому в настоящее время моя системная переменная среды с именем "PSModulePath" выглядит следующим образом:
%ProgramFiles%\WindowsPowerShell\Modules;%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules
Теперь обратите внимание на следующий скрипт PowerShell:
$envarname = "PSModulePath"
$envar = (get-item env:$envarname).Value
[Environment]::SetEnvironmentVariable($envarname, $envar + ";C:\Expedited", "Machine")
Все, что нужно сделать, это добавить путь «C:\Expedited» в переменную среды PSModulesPath, верно? Что ж, после запуска этого скрипта от имени администратора переменная среды PSModulePath изменится на следующую:
C:\Users\Username\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules;C:\Expedited
Обратите внимание, как:
- Первоначально существовало два пути, каждый из которых содержал процентные знаки (переменные) в оригинале, но впоследствии все они изменились непосредственно в жестко закодированные пути.
- Путь «C:\Users\ Имя пользователя \ Documents \ WindowsPowerShell \ Modules» возник из ниоткуда (его не было в оригинале!)
Я понятия не имею, почему произошла какая-то из этих двух вещей. При добавлении пути к этой переменной я хотел бы сохранить его как можно ближе к оригиналу, а не вносить все эти другие изменения. Есть ли способ сохранить процентные знаки, которые были потеряны? Как правильно редактировать эту переменную среды из PowerShell?