2013-02-28 15 views
5

Chcę wykonać program java z javascript i chcę uzyskać dane wyjściowe.Chcesz ukryć okno wiersza polecenia przy użyciu metody WshShell.Exec?

Intailly Próbowałem z poniższym kodzie:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c java -classpath . HelloWorld "; 
var cmdRun = WshShell.Run(launch,0,true); 

Dzięki metodzie Run nie jestem w stanie uzyskać dane wyjściowe klasy.

Potem próbowałem z poniższym kodzie:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c p java classpath . HelloWorld "; 
var cmdRun = WshShell.Exec(launch); 
while (cmdRun.Status == 0) // wait for the command to finish 
{ 
sleep(100); 
} 
var output = cmdRun.StdOut.ReadAll(); 
alert(output); 

teraz jestem w stanie uzyskać wyjście w zmiennej wydajności.

Mój problem polega na użyciu metody Run i mogę ukryć commandprompt (przekazując parametry WshShell.Run (uruchomienie, 0, prawda)) Gdzie tak jak przy użyciu metody Exec nie jestem w stanie ukryć komendy commandprompt. Chcę, żeby ten rozkaz polecenia był ukryty.

Czy możesz mi pomóc w tym zakresie? Dzięki

Odpowiedz

9

Tak, to przeszkadza wszystkim skryptom wsh. Nie można ukryć obiektu wshExec, tylko zezwala na tę opcję, ale nie ma w tym przypadku numeru StdOut. Krótko mówiąc, jedynym sposobem jest przekierowanie wyników do pliku.

WshShell = new ActiveXObject("WScript.Shell"); 
var launch ="cmd.exe /c java -classpath . HelloWorld > output.txt"; 
var cmdRun = WshShell.Run(launch,0,true); 
+0

Dziękuję Panayot za twoją budowę! Myślałem o tym również !! – user2118354

+0

Eh, właśnie zapomniałem przywitać się z StackOverflow ;-) A tak przy okazji, wtedy otrzymasz prawidłową odpowiedź, oznacz ją jako zaakceptowaną, która będzie pompować punkty do obu stron, ja i ty w tym przypadku, ale to także pomoże odpoczywaj czytelnicy forum, aby wiedzieć, że odpowiedź na to pytanie ;-) –

+0

Dziękuję Panayot !! Zrobiłem to, co sugerowałeś. – user2118354

Powiązane problemy