Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Кавычки и переменные среды (http://forum.oszone.net/showthread.php?t=254848)

semen77 24-02-2013 23:23 2098238

Кавычки и переменные среды
 
Здравствуйте. Проблема в названии темы.

Код:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
Set WshShell = WScript.CreateObject("WScript.Shell")
Const OverwriteExisting = True
'Место копирования
progdir = oShell.ExpandEnvironmentStrings ("%APPDATA%\My First Program\")
'Исходный файл
progfile1 = ".\Setup.exe"
'Конечный файл
progfile2 = progdir & "Setup.exe"
'Копирование
FSO.CopyFile progfile1, progfile2, OverwriteExisting
'Запускаем Setup.exe
WshShell.Run progfile2, 1, False

Рядом со скриптом лежит Setup.exe, его нужно поместить по адресу "%APPDATA%\My First Program\" и запустить.
Установщик помещается туда куда нужно, но не стартует.
Как правильно расставить кавычки?

P.S.: Будем считать что такая директория "%APPDATA%\My First Program\" существует.

Iska 25-02-2013 00:05 2098262

Код:

Option Explicit

Dim strFileName
Dim strSourceFile
Dim strDestFolder


strFileName  = "Setup.exe"

With WScript.CreateObject("Scripting.FileSystemObject")
        strSourceFile = .BuildPath(.GetParentFolderName(WScript.ScriptFullName), strFileName)
        strDestFolder = .BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:appdata").self.Path, "My First Program")
       
        If .FileExists(strSourceFile) Then
                If .FolderExists(strDestFolder) Then
                        .CopyFile strSourceFile, strDestFolder & "\", True
                        WScript.CreateObject("WScript.Shell").Run """" & .BuildPath(strDestFolder, strFileName) & """", 1, False
                Else
                        WScript.Echo "Destination folder [" & strDestFolder & "] not found."
                End If
        Else
                WScript.Echo "Source file [" & strFile & "] not found."
        End If
End With

WScript.Quit 0


semen77 25-02-2013 03:03 2098340

Iska , спасибо что помогаете, но не могли бы вы на пальцах объяснить про скобки и экранирование? Где мой косяк?
Ведь в моём варианте, он делает почти всё правильно, за исключением того, что не запускается.

Iska 25-02-2013 03:32 2098353

Скобки не при чём. Экранирования в VBScript нет — незачем: нет обработчика, ничего не надо и экранировать. Дело в пробелах в пути к файлу:
Код:

WScript.CreateObject("WScript.Shell").Run """" & .BuildPath(strDestFolder, strFileName) & """", 1, False


Время: 16:37.

Время: 16:37.
© OSzone.net 2001-