Question

J'utilise HTA et il j'ai une fonction qui doit exécuter une ligne de commande avec wshell.run, Si je vous écris cette ligne dans Windows « Run » UTILITAIRES fonctionne bien, je veux aussi travailler dans le Code de la route avec wshell.run.

La ligne est:

  

C: \ xxxx \ xxx \ xxx.exe aaa.psl abc

(Les noms sont xxx juste ici - pas dans le code réel ..)

Dans le code javascript J'utilise:

function runCmd()
{
 wshShell.exec( "C:\xxxx\xxx\xxx.EXE aaa.psl abc" );
}

L'erreur que je suis arrivé est dans l'application xxx.exe Says "ne pouvait fichier aaa.psl ouvert not found".

Merci, Rotem

Était-ce utile?

La solution 2

Okkkk T.J. est l'homme!! :)

J'ai finalement fait avec votre aide en remplaçant exec à exécuter:

Ceci est la finale (et de travail) Code:

function runCmd()
{
wshShell.CurrentDirectory = "G:\\xxx\\xxx";
wshShell.run( "xxx.EXE xxx.psl abc" ); 
}

Autres conseils

Je suis surpris que le programme fonctionne xxx.exe du tout. Vous devez échapper à ces antislashs dans la commande:

wshShell.Exec( "C:\\xxxx\\xxx\\xxx.EXE aaa.psl abc" );
//                ^-----^----^--- here

Si vous faites la même chose dans le nom du fichier de aaa.psl, qui est votre problème.

Si vous n'êtes pas passer un chemin complet du fichier aaa.psl, alors la plupart des programmes (pas tous) s'attendre que ce soit dans le répertoire courant , de sorte que vous aurez envie de vous assurer que vous avez correctement réglé le répertoire courant (bien que l'utilisation des chemins absolus peut être une meilleure option).

Voici un exemple, par exemple, de dire Bloc-notes pour modifier un fichier:

shell = WScript.CreateObject("WScript.Shell");
shell.Exec("c:\\windows\\system32\\notepad.exe c:\\temp\\temp.txt");

... ou via le répertoire courant:

shell = WScript.CreateObject("WScript.Shell");
shell.CurrentDirectory = "c:\\temp";
shell.Exec("c:\\windows\\system32\\notepad.exe temp.txt");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top