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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Проблема с переменными окружения в VBS-скрипте

Ответить
Настройки темы
VBS/WSH/JS - [решено] Проблема с переменными окружения в VBS-скрипте

Новый участник


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

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


короче вот скрипт
Код: Выделить весь код
Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = False
    objIE.Navigate "C:\WINDOWS\Temp\stranyca.html"

    While objIE.Busy: WScript.Sleep 200:Wend
    For Each tag In objIE.Document.getElementsByTagName("i")
        strFilm = tag.innerHTML
        Next
    strFilm = Replace(strFilm," ","_") 
Set tag = objIE.Document.getElementByid("start_download_form")
Set WshShell = CreateObject("WScript.Shell")
Retval = WshShell.Run ("cmd /c wget -c -t 0 http://share-nn.ru/" & _ 
tag.getAttribute("action") &" -O Music/" & strFilm, 1, True)
objIE.Quit
при замене
objIE.Navigate "C:\WINDOWS\Temp
на
objIE.Navigate "%SystemRoot%\Temp
у мня лезет ошибка, что не так?

Отправлено: 22:50, 08-03-2011

 

Ветеран


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

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


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

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


Iska, спасибо конечно большое , но как реализовать я так и не догнал. наверно оставлю с прямым путём как есть

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


Ветеран


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

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


alexmoreman, примерно так:
Код: Выделить весь код
…
    objIE.Visible = False
    
    With WScript.CreateObject("WScript.Shell")
        strPath = .ExpandEnvironmentStrings(.Environment("SYSTEM").Item("TEMP"))
    End With
    
    objIE.Navigate "file://" & strPath & "\stranyca.html"
…
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:28, 09-03-2011 | #4


Новый участник


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

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


Iska, вообще все зашибись работает а к переменной %TEMP% данное деяние возможно приспособить?

Отправлено: 00:44, 09-03-2011 | #5


Ветеран


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

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


alexmoreman, к пользовательской «%TEMP%»? Конечно, можно. Попробуйте поменять в примере из #4 «….Environment("SYSTEM")…» на «….Environment("USER")…».

Отправлено: 09:00, 09-03-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Проблема с переменными окружения в VBS-скрипте

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs nod201 Скриптовые языки администрирования Windows 0 05-12-2009 05:44
Проблема при открытии сетевого окружения выдаёт ошибку Rommsht Microsoft Windows NT/2000/2003 5 20-12-2007 17:25
VBS/WSH/JS - Проблема со скриптом VBS! voler Программирование и базы данных 5 19-06-2007 14:38
проблема с переменными окружения Vasosel Microsoft Windows NT/2000/2003 2 12-07-2006 14:21
Проблема со скриптом на VBS UnDetect Microsoft Windows NT/2000/2003 0 14-04-2006 13:26




 
Переход