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

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

ProofNah 16-10-2009 21:37 1244929

JS и WinRar
 
Подскажите пожалуйста, как можно используя JS и WinRar разархивировать файл?
Пытался использовать методы run и exec, но ни чего стоящего не получилось. Я так понимаю, что нужно запустить консоль и внутри прописать необходимые данные.

Petya V4sechkin 17-10-2009 09:19 1245126

Код:

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("WinRAR.exe x имя_архива", 1, true);


ProofNah 17-10-2009 13:52 1245328

Petya V4sechkin, спасибо.

Использую следующий код, но пишет что архив не найден. Если не использовать переменную, то все разархивируется?!

Код:

var Variable="d:\\Ar.rar d:\\Work\\"; 
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("WinRAR.exe e"+Variable, 1, true);


amel27 17-10-2009 14:49 1245367

Цитата:

Цитата ProofNah
пишет что архив не найден »

вставьте пробел между "e" и именем архива (var): "WinRAR.exe e ", иначе получается команда:
Код:

WinRAR.exe ed:\Ar.rar d:\Work\

ProofNah 17-10-2009 15:02 1245388

Благодарствую!!!
Как можно добавить кавычки в пути, а то предстоит использовать полные пути в имени которых встречаются пробелы. Извиняюсь за "такие вопросы", просто везде информация об vbs, мало источников для js.

Например:
Код:

var Variable="d:\\Ar.rar d:\\Папка для разархивации\\"; 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.Run("WinRAR.exe e "+Variable, 1, true);


amel27 17-10-2009 15:08 1245394

Цитата:

Цитата ProofNah
Как можно добавить кавычки в пути»

я не знаток JS, но судя по приведенному коду, экранировать обратным слэшем: \"

ProofNah 17-10-2009 18:01 1245479

Цитата:

Цитата amel27
я не знаток JS, но судя по приведенному коду, экранировать обратным слэшем: \" »

К сожалению не удалось.

Если использовать апостроф, а затем двойные кавычки, то строка формируется в двойных кавычках, но это не спасает. Т.к. пишется, что архив не найден. Может я что-то делаю не так?
Код:

var Variable=' "d:\\Ar.rar d:\\Папка для разархивации\\" '; 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.Run("WinRAR.exe e "+Variable, 1, true);

Все получилось. Спасибо всем принявших непосредственное участие в решение моей проблемы. Просто в кавычки нужно было брать каждый путь отдельно.

Код:

var Variable=' "d:\\Ar.rar" '+" "+' "d:\\Папка для разархивации\\" '; 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.Run("WinRAR.exe e "+Variable, 1, true);


Iska 17-10-2009 18:33 1245504

Или так, как советовал amel27:
Код:

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"c:\\Program files\\WinRar\\WinRAR.exe\" e \"C:\\Install\\На разбор\\Boot Images\\Boot Floppy\\HS Feed Diskette 1.5\\_sysdisk15.rar\" \"C:\\Песочница\\31\\\"", 1, true);

Для того, чтобы смотреть, что получается, хорошо пользовать Process Monitor, установив фильтр «Process Create/…Start/…Exit».


Время: 12:36.

Время: 12:36.
© OSzone.net 2001-