Question
$error
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 4 mois #3278
par steph_d
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3281
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:$error
steph_d écrit:
[code:1]
$error.gettype()
# une fois le type connu, on peut aussi consulter MSDN...
$error|gm
$error.psbase|gm
$error.Clear()
[/code:1]
Plutôt une démarche de recherche :mais j'espère que quelqu'un a une astuce.
[code:1]
$error.gettype()
# une fois le type connu, on peut aussi consulter MSDN...
$error|gm
$error.psbase|gm
$error.Clear()
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 4 mois #3282
par steph_d
@+ Steph
oh oh oh du calme là 
J'arrive pas à consulter le MSDN pour powershell, je pige pas. Pour les objest .net pas de souci mais les objets en général je sais pas.
J'ai essayyé le $error |gm, mais pas $error.psbase|gm. Comment as tu eu cette idée ?
Autre chose, à l'écran lors d'une erreur on a la description mais aussi le nom du fichier le numéro de la ligne et la colonne concerné. Par contre je n'arrive qu'à récupérer la description pas le reste !!
Merci
Stephane
J'arrive pas à consulter le MSDN pour powershell, je pige pas. Pour les objest .net pas de souci mais les objets en général je sais pas.
J'ai essayyé le $error |gm, mais pas $error.psbase|gm. Comment as tu eu cette idée ?
Autre chose, à l'écran lors d'une erreur on a la description mais aussi le nom du fichier le numéro de la ligne et la colonne concerné. Par contre je n'arrive qu'à récupérer la description pas le reste !!
Merci
Stephane
@+ Steph
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3283
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:$error
steph_d écrit:
steph_d écrit:
steph_d écrit:
Ce qui en travaillant donne ceci :
laurent-dardenne.developpez.com/articles...iquesSousPowerShell/
steph_d écrit:
[code:1]
$e=$error[0]
$e
$e|gm
$e.ErrorRecord
$e.ErrorRecord|gm
$e.ErrorRecord.InvocationInfo
$e.ErrorRecord.InvocationInfo|gm
$e.ErrorRecord.InvocationInfo.ScriptLineNumber
$e.ErrorRecord.InvocationInfo.ScriptName
#etc
[/code:1]
Mais là je sous la CTP2 j'ai donc un doute si sous la v1 c'est identique.
Je viens de regarde sur MSDN , je pense que c'est bon. A vérifier
Ma démarche n'était pas de t'affoler...oh oh oh du calme là
steph_d écrit:
Peux-tu préciser ?J'arrive pas à consulter le MSDN pour powershell, je pige pas. Pour les objest .net pas de souci mais les objets en général je sais pas.
steph_d écrit:
En étudiant PowerShell au travers de livre, de site, de blog, de reverse, de tests...Comment as tu eu cette idée ?
Ce qui en travaillant donne ceci :
laurent-dardenne.developpez.com/articles...iquesSousPowerShell/
steph_d écrit:
On applique le même principe :Par contre je n'arrive qu'à récupérer la description pas le reste !!
[code:1]
$e=$error[0]
$e
$e|gm
$e.ErrorRecord
$e.ErrorRecord|gm
$e.ErrorRecord.InvocationInfo
$e.ErrorRecord.InvocationInfo|gm
$e.ErrorRecord.InvocationInfo.ScriptLineNumber
$e.ErrorRecord.InvocationInfo.ScriptName
#etc
[/code:1]
Mais là je sous la CTP2 j'ai donc un doute si sous la v1 c'est identique.
Je viens de regarde sur MSDN , je pense que c'est bon. A vérifier
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 4 mois #3287
par steph_d
@+ Steph
Bonjour
En fait je sais pas trop ou trouver l'aide MSDN pour les descriptions des classes powershelll. Pour le framework 2.0 c'est bon.
Sinon pour mon problème, ben oui mais non ça marche pas, et c'est complètement tordu.
Voilà mon bout de code :
\"trap { \"Exception détectée dans le programme !\";
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'
$mail.To.Add('Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.')
$mail.Subject = 'Exception détectée dans l''extraction WMS'
$contenu = $error[0]
$contenu
$mail.Body = $contenu
$client = New-Object System.Net.Mail.SmtpClient
$client.Set_Host('SRV-MAIL')
$client.Send($mail)
break
}
\"
$contenu affiche toutes les informations qui m'intéresse sur la console:
\"Exception détectée dans le programme !
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « ERROR [42S22] [IBM][Pilote ODBC iSeries Access][DB2 UD
B]SQL0206 - La colonne ACFDPL ne se trouve pas dans les tables indiquées. »
Au niveau de S:\Informatique\Réservé\scripts\PowerShell\extraction CDF.ps1 : 35 Caractère : 24\"
par contre dans le mail je n'ai que la première partie, il me manque les infos sur le programme :
\"Au niveau de S:\Informatique\Réservé\scripts\PowerShell\extraction CDF.ps1 : 35 Caractère : 24\"
J'ai essayé en ajoutant au mail : \"$error[0].InvocationInfo.ScriptName\" mais j'ai rien de plus, pire j'ai aussi essayé
\"$error[0].InvocationInfo.ScriptName.ToString()\"
là j'ai une erreur qui me dit que
\"Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null\"
C'est bizarre non ?
Merci
Stephane
En fait je sais pas trop ou trouver l'aide MSDN pour les descriptions des classes powershelll. Pour le framework 2.0 c'est bon.
Sinon pour mon problème, ben oui mais non ça marche pas, et c'est complètement tordu.
Voilà mon bout de code :
\"trap { \"Exception détectée dans le programme !\";
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.'
$mail.To.Add('Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.')
$mail.Subject = 'Exception détectée dans l''extraction WMS'
$contenu = $error[0]
$contenu
$mail.Body = $contenu
$client = New-Object System.Net.Mail.SmtpClient
$client.Set_Host('SRV-MAIL')
$client.Send($mail)
break
}
\"
$contenu affiche toutes les informations qui m'intéresse sur la console:
\"Exception détectée dans le programme !
Exception lors de l'appel de « Fill » avec « 1 » argument(s) : « ERROR [42S22] [IBM][Pilote ODBC iSeries Access][DB2 UD
B]SQL0206 - La colonne ACFDPL ne se trouve pas dans les tables indiquées. »
Au niveau de S:\Informatique\Réservé\scripts\PowerShell\extraction CDF.ps1 : 35 Caractère : 24\"
par contre dans le mail je n'ai que la première partie, il me manque les infos sur le programme :
\"Au niveau de S:\Informatique\Réservé\scripts\PowerShell\extraction CDF.ps1 : 35 Caractère : 24\"
J'ai essayé en ajoutant au mail : \"$error[0].InvocationInfo.ScriptName\" mais j'ai rien de plus, pire j'ai aussi essayé
\"$error[0].InvocationInfo.ScriptName.ToString()\"
là j'ai une erreur qui me dit que
\"Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null\"
C'est bizarre non ?
Merci
Stephane
@+ Steph
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3288
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:$error
Salut,
steph_d écrit:
[code:1]
$e=$error[0]
if ($e -is [System.Management.Automation.ErrorRecord])
{
$contenu =$e.InvocationInfo.ScriptLineNumber
$contenu +=$e.InvocationInfo.ScriptName
}
else
{ #Une exception
$contenu =$e.ErrorRecord.InvocationInfo.ScriptLineNumber
$contenu +=$e.ErrorRecord.InvocationInfo.ScriptName
}
[/code:1]
Pour les classes de PS regarde ici
msdn.microsoft.com/en-us/library/aa717491(VS.85).aspx
Message édité par: Laurent Dardenne, à: 21/11/08 10:34
steph_d écrit:
La liste $error peut contenir des objets de différents types, essaie avec ceci :C'est bizarre non ?
[code:1]
$e=$error[0]
if ($e -is [System.Management.Automation.ErrorRecord])
{
$contenu =$e.InvocationInfo.ScriptLineNumber
$contenu +=$e.InvocationInfo.ScriptName
}
else
{ #Une exception
$contenu =$e.ErrorRecord.InvocationInfo.ScriptLineNumber
$contenu +=$e.ErrorRecord.InvocationInfo.ScriptName
}
[/code:1]
Pour les classes de PS regarde ici
msdn.microsoft.com/en-us/library/aa717491(VS.85).aspx
Message édité par: Laurent Dardenne, à: 21/11/08 10:34
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.091 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- $error