Question Récuperer sortie commande dans une variable

Plus d'informations
il y a 17 ans 2 jours #4403 par Johan
Bonjour,

j'ai une fonction qui execute cette requête afin de rentré la configuration ip du DNS en DHCP:
[code:1]psexec \\$nomPC -u 'domaine/admin -p 'pass' -c -f \"\\serveur\chemin\dns.bat\"[/code:1]

Cette fonction s'execute quand je clic sur un boutton.

Dans la console PS s'affiche
[code:1]
PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

\\serveur\chemin\dns.bat exited with error code 0.[/code:1]

Je voudrais récuperer le code erreur afin d'afficher à l'ecran si oui ou non la commande a réussie.

J'ai vu qu'on pouvais renvoyer la sortie de la commande dans un fichier mais c'est galère.

Ce n'est pas possible de renvoyer la sortie dans une variable et d'extraire le code erreur ?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 2 jours #4404 par Laurent Dardenne
VashQuiRit écrit:

Ce n'est pas possible de renvoyer la sortie dans une variable et d'extraire le code erreur ?

Essaie ;)
[code:1]
$files= cmd /c \"dir c:\temp\"
$files
$files[-1]
...
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 19/03/09 18:07

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 1 jour #4406 par Robin Lemesle
Pour moi le plus simple c'est de faire comme laurent, mettre le resultat textuel dans une variable et traiter le contenu de cette variable, si elle contient le la phrase \&quot;exited with error code 0\&quot; =&gt; erreur sinon c'est bon :

[code:1]
if $files[-1].Contains(\&quot;exited with error code 0\&quot;«»)
{write-host \&quot;Execusion réussie}
else{write-host \&quot;Execusion non réussie}

[/code:1]

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 1 jour #4407 par Arnaud Petitjean
Bonjour VashQuiRit et bienvenue sur le forum ;)

Pour moi il existe une autre façon de faire; celle-ci consiste à récupérer la valeur du code de retour d'un exécutable Win32.
Cette valeur est en principe stockée dans la variable $LastExitCode. Ainsi si la variable vaut zéro c'est que l'exécution s'est bien déroulée.

Essaie un truc du genre :
[code:1]
psexec \\$nomPC -u 'domaine/admin -p 'pass' -c -f \&quot;\\serveur\chemin\dns.bat\&quot;
if ($LastExitCode -eq 0)
{
Write-Host \&quot;Exécution réussie\&quot;
}
else
{
Write-Host \&quot;Un problème s'est produit !\&quot;
}
[/code:1]

Tiens nous au courant,

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 1 jour #4415 par Johan
J'ai utilisé la méthode de Arnaud et ca marche nickel merci =)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.105 secondes
Propulsé par Kunena