Как запустить 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"); 

использовать