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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Проблема с переменной %Program Files% (http://forum.oszone.net/showthread.php?t=263182)

Anton23 26-06-2013 00:16 2174371

Проблема с переменной %Program Files%
 
Здравствуйте.Имеется такой 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 2174384

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

Anton23 26-06-2013 01:09 2174390

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 2174402

Для начала попробуйте дожидаться завершения работы пакетного файла:
Код:

WSHShell.Run("install.bat", 0, true);
И не нужно дважды создавать объект, уберите второе:
Код:

var WSHShell = WScript.CreateObject("WScript.Shell");
Интересно, а что Вы пытаетесь копировать этим:
Цитата:

Цитата Anton23
Код:

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 и пакетного файла, почему не сделаете одной технологией или не воспользуетесь модифицированным модулем?

Anton23 26-06-2013 02:23 2174403

Ответ прост...именно в этой области практически не разбираюсь...похожую схему встретил где то в интернете и переделал под свои нужды.При запуске exe всё копируется но вот файл сразу не запускается..ну что ж..и на этом спасибо.


Время: 00:53.

Время: 00:53.
© OSzone.net 2001-