Question Redirection des messages d'erreur (Résolu)

Plus d'informations
il y a 14 ans 2 mois #101 par x-trem
Bonsoir,

Comment faire pour que les messages d'erreurs ne soient pas affichés dans la console lors de l'exécution d'un script ?

Une sorte de \"on error resume next\" :unsure: mais en powershell :) .

Merci

Xtrem.<br><br>Message édité par: Arnaud, à: 17/07/07 17:24

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

Plus d'informations
il y a 14 ans 2 mois #105 par Robin Lemesle
tu peux mettre la valeur \&quot;SilentlyContinue\&quot; à la variable $ErrorActionPreference (variable globale que tu peux lister avec la commande gci variable: )
La valeur par defaut est \&quot;continue\&quot;
mais attention, du coup les messages d'erreurs ne s'affichent plus ....

[code:1]$ErrorActionPreference=\&quot;SilentlyContinue\&quot;[/code:1]

Robin MVP PowerShell

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

Plus d'informations
il y a 14 ans 1 mois #141 par Arnaud Petitjean
Juste une petite précision.

Bien que les messages d'erreurs ne s'affichent plus à l'écran, PowerShell les consigne quand même dans la variable $error.

Et $error[0] contient toujours le dernier message d'erreur intercepté.

J'allais oublier, il y a aussi les paramètres communs à toutes les cmdlets (appélés aussi \&quot;ubiquitous parameters\&quot;). Ainsi tu peux, cmdlet par cmdlet définir avec -ErrorAction quel devra être leur comportement face aux erreurs.

Exemple:
[code:1]Get-ChildItem \&quot;c:\RepertoireInexistant\&quot; -ErrorAction \&quot;silentlycontinue\&quot;[/code:1]

idem pour -ErrorVariable qui permet de récuperer l'erreur dans une variable.

Sur ce, bon scripting...

Arnaud<br><br>Message édité par: Arnaud, à: 17/07/07 17:23

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 ou d'un conseil ?

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

Plus d'informations
il y a 14 ans 3 semaines #200 par Laurent Dardenne
En complément:
On retrouve la notion des handles systèmes sous PowerShell, à l'identique de MSDOS, de portée locale :
[code:1]
dir FichierInexistant 2&gt;&amp;1
[/code:1]
Affiche sur la console. Seule la couleur d'affichage différencie la sortie standard de la sortie d'erreur.
[code:1]
dir FichierInexistant 2&gt;$NULL
[/code:1]
[code:1]
dir c:\ &gt;$NULL
[/code:1]
Aucun affichage
[code:1]
dir c:\, FichierInexistant 2&gt;$NULL
[/code:1]
Seul les fichiers existant sont listés. La variable $Error contient la dernière erreur.
[code:1]
dir c:\, FichierInexistant 1 2&gt;$NULL
[/code:1]
La combinaison des handles de sortie standard (1) et d'erreur standard (2) ne génére aucun affichage.
L'interrogation de $? (boolean) nous indiquera si une rreur c'est produite.
L'ordre (c:\, FichierInexistant) ou (FichierInexistant, c:\) n'intervenant pas sur le contenu de cette variable.

Tutoriels PowerShell

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

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