web-dev-qa-db-fra.com

Comment exécuter cmd.exe avec les paramètres de javascript

J'essaie d'écrire javascript qui devrait exécuter cmd.exe avec une ligne de commande spécifiée comme ceci docs.google.com/file/d/0B7QHCoQDlEvKWUZSX3oxUDI2SDg/edit :

Je prépare un code après avoir lu la méthode shellexecute sur le site Microsoft:

var objShell = new ActiveXObject("Shell.Application");
        objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\system32", "open", "1");

mais il n'insère pas de ligne de commande dans cmd.exe.

Quelqu'un pourrait-il m'aider? Merci d'avance.

12
May12

Peut-être que ce contrôle ActiveX n'est pas installé (ou enregistré) sur votre ordinateur.

WScript.Shell Devrait être trouvé dans chaque Windows:

var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");

S'il y a des espaces dans commands to run, Vous devez utiliser des guillemets doubles.

Modifier

Le contenu ci-dessous provient principalement de MSDN: http://msdn.Microsoft.com/en-us/library/windows/desktop/gg537745 (v = vs.85) .aspx

iRetVal = Shell.ShellExecute(
  sFile,
  [ vArguments ],
  [ vDirectory ],
  [ vOperation ],
  [ vShow ]
)

Prenons [vDirectory]. La documentation indique: "Le path of the directory Complet qui contient le fichier spécifié par sFile. Si ce paramètre n'est pas spécifié, le répertoire de travail actuel est utilisé."

Cela signifie que vous avez un chemin non valide pour cet argument (ayant .cmd.exe À la fin). De plus, tous les exemples de création d'ActiveX sont comme ceci:

var objShell = new ActiveXObject("Shell.application");

Remarquez les minuscules dans "Shell.application".

Et May12, merci d'avoir posé cette question. Je ne connaissais pas ce contrôle ActiveX auparavant, il me semble très utile.

EDIT II

Mais l'avez-vous compris? Votre exemple fonctionne parfaitement dans mon application:

objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);

À trois exceptions près:

1) Celui que j'ai mentionné au début de cette réponse sur le chemin

2) \ Échappé utilisé également dans les arguments.

3) Le dernier argument est le type de nombre, pas une chaîne.