Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


alexmoreman, разбор переменных окружения в пакетных файлах выполняет сам интерпретатор «cmd.exe». Для WSH Вы должны явно делать это, например, вызовом функции «.ExpandEnvironmentStrings()» объекта «WScript.Shell». Образцы кода представлены ниже, правильный способ изложен в «2.», конкретно Ваш вариант — «2.a)»:
Код: Выделить весь код
Option Explicit

' Enum SpecialFolderConst
Const WindowsFolder   = 0
Const SystemFolder    = 1
Const TemporaryFolder = 2

Dim objWshShell
Dim objFSO
Dim objWshEnvironment


Set objWshShell       = WScript.CreateObject("WScript.Shell")
Set objFSO            = WScript.CreateObject("Scripting.FileSystemObject")

'-----------------------------------------------------------------------------
WScript.Echo "1."
WScript.Echo objWshShell.ExpandEnvironmentStrings("%SystemRoot%\Temp")
WScript.Echo
'-----------------------------------------------------------------------------
WScript.Echo "2."
WScript.Echo "  a) System Environment:"

Set objWshEnvironment = objWshShell.Environment("SYSTEM")
WScript.Echo objWshShell.ExpandEnvironmentStrings(objWshEnvironment("TEMP"))
Set objWshEnvironment = Nothing

WScript.Echo 
WScript.Echo "  b) User Environment:"

Set objWshEnvironment = objWshShell.Environment("USER")
WScript.Echo objWshShell.ExpandEnvironmentStrings(objWshEnvironment("TEMP"))
Set objWshEnvironment = Nothing

WScript.Echo
'-----------------------------------------------------------------------------
WScript.Echo "3."
WScript.Echo "  * User Environment:"
WScript.Echo objFSO.GetSpecialFolder(TemporaryFolder)

Set objFSO            = Nothing
Set objWshShell       = Nothing

WScript.Quit 0
P.S. WshEnvironment Object.

Последний раз редактировалось Iska, 08-03-2011 в 23:43. Причина: Добавлена ссылка на MSDN.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:36, 08-03-2011 | #2