VBScript obtention de résultats à partir du Shell
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "runas ..."
Comment puis-je obtenir les résultats et les afficher dans un MsgBox
Définir des "résultats". Runas code de sortie? Code de sortie de l'exécution de l'application via runas? L'application est sortie de la console?
OriginalL'auteur Cocoa Dev | 2011-05-19
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser l'objet WshShell de la méthode Exec au lieu de l'Exécuter. Ensuite, il suffit de lire la ligne de commande de sortie de flux standard. Essayez celui-ci:
Pas de. Exécuter ne donne pas accès aux flux standard.
Note: Ceci est asynchrone, donc vous verrez probablement une mauvaise
WshShellExec.Status
àSelect Case
Si vous l'utilisez comme prévu, à exécuter des programmes en ligne de commande, il doit exécuter la commande retourne un objet à l'achèvement. Toutefois, si vous lancez une fenêtre d'application tels que calc.exe, vous avez besoin d'une boucle depuis la ligne de commande serait de retour avant l'exécution du programme est terminée. Dans ce cas, il vous suffit de boucle jusqu'à ce que
WshShellExec.Status <> 0
.il échoue à l'aide de votre propre strCommand valeur. Elle renvoie la valeur 0 (le sens de la Course) Fixée à stackoverflow.com/questions/32920690/...
OriginalL'auteur Nilpo
Ceci est une version modifiée de Nilpo réponse qui résout le problème avec
WshShell.Exec
être asynchrone. Nous faisons une longue boucle d'attente jusqu'à ce que la coquille de l'état n'est plus en cours d'exécution, et on vérifie ensuite la sortie. Changement de l'argument de ligne de commande-n 1
une valeur plus élevée pour faireping
prendre plus de temps, et de voir que le script va attendre plus longtemps, jusqu'à la fin.(Si quelqu'un a un vrai asynchrone, basé sur des événements solution au problème, alors s'il vous plaît laissez-moi savoir!)
OriginalL'auteur BoffinbraiN
le troisième paramètre doit être vrai, et errorlevel sera la valeur de retour, vérifier si elle est égale à 0.
Je test de code jscript, et je pense que vbscript est ok aussi
comme vous pouvez le voir sur l'autre réponse, votre hypothèse est fausse.
non, si le troisième paramètre est true, la valeur de retour sera errorlevel
OriginalL'auteur netawater