Как запустить cmd.exe с параметрами из javascript
Я пытаюсь написать javascript, который должен запускать cmd.exe с указанным командной строки в ней такой docs.google.com/file/d/0B7QHCoQDlEvKWUZSX3oxUDI2SDg/edit:
Я готовлю код после чтения метода shellexecute на сайте microsoft:
var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:pr main.exe blablafile.txt auto", "C:WINDOWSsystem32", "open", "1");
но он не вставляет командную строку в cmd.исполняемый.
кто-нибудь может мне помочь? Заранее спасибо.
2 ответов
возможно, у вас нет этого ActiveX-control, установленного (или зарегистрированного) на вашем компьютере.
WScript.Shell
должно быть найдено в каждом Windows:
var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
если есть пробелы в commands to run
, вам нужно использовать двойные кавычки.
редактировать
содержание ниже главным образом от MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/gg537745(v=vs. 85).aspx
iRetVal = Shell.ShellExecute(
sFile,
[ vArguments ],
[ vDirectory ],
[ vOperation ],
[ vShow ]
)
давайте [vDirectory]
. В документации говорится: "полностью квалифицированный path of the directory
который содержит файл, указанный sFile. Если этот параметр не указан, используется текущий рабочий каталог."
это означает, что у вас есть недопустимый путь для этого аргумента (имеющего .cmd.exe
в конце его). Также все примеры создания ActiveX следующие:
var objShell = new ActiveXObject("shell.application");
обратите внимание на нижний регистр в "shell.application"
.
и May12, спасибо, что спросили об этом. Я не знал об этом ActiveX контроль прежде, кажется, очень полезен для меня.
EDIT II
но поняли ли вы это? Ваш пример отлично работает в моем приложении:
objShell.ShellExecute("cmd.exe", "cd C: C:\cd c:\ext_file main.exe test.txt", "C:\WINDOWS\system32", "open", 1);
С тремя исключениями:
1) тот, который я упомянул в начале этого ответа о пути
2) сбежали \
используется также в качестве аргументов.
3) последний аргумент-это тип числа, а не строка.
var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:\pr main.exe blablafile.txt auto", "C:\WINDOWS\system32", "open", "1");
использовать