Войти

Показать полную графическую версию : Проблема с переменной %Program Files%


Anton23
26-06-2013, 00:16
Здравствуйте.Имеется такой js скрипт stop.js:

var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("install.bat",0);

var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("%Program Files%\Punto Switcher\punto.exe");

myActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
file = myActiveXObject.GetFile("stop.js");
file.Delete();

Знаю тут много ошибок,но в целом вот что я хочу:

Сначала запускается install.bat и после его выполнения запускается файл punto.exe (тут была проблема при выполнении скрипта пишет "Не найден файл" и это при том что он на месте).Заранее спасибо за помощь.

Iska
26-06-2013, 00:47
Anton23, укажите Вашу ОС (включая разрядность). Приведите содержимое «install.bat». Укажите взаимное расположение файлов «install.bat» и «stop.js». Укажите, как именно Вы запускаете «stop.js».

Anton23
26-06-2013, 01:09
Windows 7 32-bit.Содержимое install.bat:

@echo off
md "%Program Files%\Punto Switcher"
md "%Program Files%\Punto Switcher\Data"
md "%Program Files%\Punto Switcher\User Data"

copy /y "punto.exe" "%Program Files%\Punto Switcher\punto.exe"
copy /y "diary.exe" "%Program Files%\Punto Switcher\diary.exe"
copy /y "userdata.local" "%Program Files%\Punto Switcher\userdata.local"
copy /y "diary.dll" "%Program Files%\Punto Switcher\diary.dll"
copy /y "pshook.dll" "%Program Files%\Punto Switcher\pshook.dll"
copy /y "ps.dat" "%Program Files%\Punto Switcher\Data\ps.dat"
copy /y "%Program Files%\Punto Switcher\User Data\diary.dat"
copy /y "%Program Files%\Punto Switcher\User Data\replace.dat"
copy /y "preferences.xml" "%Program Files%\Punto Switcher\User Data\preferences.xml"
copy /y "user.dic" "%Program Files%\Punto Switcher\User Data\user.dic"

del /f /q "%temp%\punto.exe"
del /f /q "%temp%\diary.exe"
del /f /q "%temp%\userdata.local"
del /f /q "%temp%\diary.dll"
del /f /q "%temp%\pshook.dll"
del /f /q "%temp%\ps.dat"
del /f /q "%temp%\diary.dat"
del /f /q "%temp%\replace.dat"
del /f /q "%temp%\preferences.xml"
del /f /q "%temp%\user.dic"

del /f /q "%temp%\stop.js"
del /f /q "%temp%\install.bat"

Файлы install.bat и stop.js и файлы Punto Switcher'a находятся в файле Setup.exe созданном при помощи 7z

Iska
26-06-2013, 02:13
Для начала попробуйте дожидаться завершения работы пакетного файла:
WSHShell.Run("install.bat", 0, true);

И не нужно дважды создавать объект, уберите второе:
var WSHShell = WScript.CreateObject("WScript.Shell");

Интересно, а что Вы пытаетесь копировать этим:
copy /y "%Program Files%\Punto Switcher\User Data\diary.dat"
copy /y "%Program Files%\Punto Switcher\User Data\replace.dat" »
Как я понимаю — пару файлов из «%Program Files%\Punto Switcher\User Data» в текущий каталог. А Вы?

Далее, почему Вы копируете из текущего каталога, а удаляете из «%TEMP%»?

Ну, и последнее — зачем Вам такая «солянка» из WSH и пакетного файла, почему не сделаете одной технологией или не воспользуетесь модифицированным модулем (http://7zsfx.info/ru/)?

Anton23
26-06-2013, 02:23
Ответ прост...именно в этой области практически не разбираюсь...похожую схему встретил где то в интернете и переделал под свои нужды.При запуске exe всё копируется но вот файл сразу не запускается..ну что ж..и на этом спасибо.




© OSzone.net 2001-2012