Могу ли я подобрать переменные окружения в сценарии vbscript WSH?
Все существующие ответы полезны, но wsh позвольте мне сделать прагматическое резюме:
Обычно vbscript требуется определение переменной среды текущего процесса:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")
Это эквивалент vbs (обратите внимание на отсутствие vbs %
вокруг имени переменной):
CreateObject("WScript.Shell").Environment("Process").Item("TEMP")
Предостережение: не пропускайте часть ("Process)
: в этом случае вы получите определение переменной в области system; см. ниже.
.ExpandEnvironmentStrings
концептуально проще и гибче: он windows-script-host может расширять произвольные строки с windows-script-host помощью встроенного (%
-enclosed) окружения- ссылки environment-variables на переменные; например:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("My name is %USERNAME%")
В environment-variables редких случаях вам может env потребоваться доступ к определениям переменных среды из определенной области (кроме области wscript текущего процесса).
sScope = "System" ' May be: "Process", "User", "Volatile", "System"
CreateObject("WScript.Shell").Environment(sScope).Item("TEMP")
Примечание. Как wsh указано выше, при отсутствии env аргумента области действия vbscript по умолчанию используется windows-script-host область действия System
.
Предостережение: доступ vbscript к значению таким образом env не расширяет его: значения переменных windows-script-host среды могут быть вложенными: они могут vbs ссылаться на другие переменные windows-script-host среды.
В приведенном выше windows-script-host примере возвращаемое значение cscript - %SystemRoot%\TEMP
, которое содержит нерасширенную ссылку cscript на %SystemRoot%
.
Чтобы развернуть результат, передайте env его в .ExpandEnvironmentStrings()
, как показано выше.
vbscript
environment-variables
wsh
Могу ли я подобрать переменные окружения в сценарии vbscript WSH?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.