L'exécution de la ligne de commande en mode automatique avec VbScript et l'obtention de la sortie?
Je veux être en mesure d'exécuter un programme en ligne de commande et je veux le lancer avec VbScript. Je tiens également à obtenir la sortie de la ligne de commande et l'assigner à une variable et je veux que tout cela soit fait en silence, sans cmd windows popping up. J'ai réussi deux choses séparément, mais pas ensemble. Voici ce que j'ai obtenu jusqu'à présent.
Exécutez la commande cmd et obtenir de sortie:
Dim WshShell, oExec
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("C:\snmpget -c public -v 2c 10.1.1.2 .1.3.6.1.4.1.6798.3.1.1.1.5.1")
x = oExec.StdOut.ReadLine
Wscript.Echo x
Le script ci-dessus fonctionne et fait ce que je veux sauf que cmd pop pour un bref moment.
Voici un script qui sera exécuté en mode silencieux mais ne prenez la sortie
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("C:\snmpset -c public -v 2c -t 0 10.1.1.2 .1.3.6.1.4.1.6798.3.1.1.1.7.1 i 1", 0, true)
Est-il un moyen d'obtenir ces deux travailler ensemble?
Permettez-moi de vous donner un arrière-plan sur laquelle je veux faire cela. Je suis fondamentalement d'interrogation d'une unité toutes les 5-10 minutes, et je vais obtenir le script de e-mail ou de jeter une boîte de message lorsqu'une certaine condition se produit, mais je ne veux pas voir la ligne de cmd qui ouvrent tout au long de la journée sur mon ordinateur. Toutes les suggestions?
Grâce
Vous devez vous connecter pour publier un commentaire.
Vous pouvez rediriger la sortie vers un fichier, puis lire le fichier:
J'ai pris ce et de divers autres commentaires et créé un peu plus de fonctions avancées pour l'exécution d'une demande et l'obtention de la sortie.
Exemple pour Appeler la Fonction: sortie de la DIR liste de C:\ pour les Répertoires. La sortie devra être retourné à la variable CommandResults ainsi que de rester dans C:\OUTPUT.TXT.
Fonction
@Mark Cidade
Merci Marc! Cela a résolu quelques jours de recherche sur le demandais comment dois-je appeler cela de la PHP WshShell. Ainsi, grâce à votre code, j'ai pensé que...
C'est ce qui a fonctionné pour moi dans mon cas. N'hésitez pas à utiliser et les modifier selon vos besoins. Vous pouvez toujours ajouter des fonctionnalités au sein de la fonction pour lire automatiquement le fichier tmp, l'affecter à une variable et/ou de retour, puis supprimez le fichier tmp.
Merci encore @Marc!
Je suis nouveau à tout cela, mais j'ai trouvé que si le script est lancé via CScript.exe (la console hôte de script) il n'y a pas de fenêtre surgissant lors d'un exec(): donc, lors de l'exécution:
tout .Exec() appelle dans le myscript.vbs ne pas ouvrir une fenêtre supplémentaire, sens
que vous pouvez utiliser la première variante de l'original de votre solution (en utilisant exec).
(À noter que les deux barres obliques dans le code ci-dessus sont intentionnels, voir cscript /?)
il permet d'économiser votre .le fichier bat pour "Appdata de l'utilisateur actuel" ,si elle n'existe pas et supprimez les attributs
et après cet ensemble de "caché" attributs de fichier après l'écriture de votre code cmd
et de l'exécuter en mode silencieux et de capturer toutes les sorties de l'enregistre dans un fichier
donc, si u veux enregistrer les résultats de cmd pour fichier il suffit d'ajouter votre comme cette
il suffit de remplacer le mot "code" avec votre .fichier bat, du code ou de la commande et après que le répertoire du fichier de sortie
J'ai trouvé un code récemment, après une recherche beaucoup
si u veux exécuter .fichier bat en vb ou c# ou tout simplement
il suffit d'ajouter ce de la même manière dont j'ai écrit
Look pour l'affectation de la sortie vers le presse-papiers (dans votre premier script), puis en second script analyser le presse-papiers de valeur.