Question Invoke-Expression rediriger la sortie

Plus d'informations
il y a 14 ans 6 mois #5491 par exca
Bonjour

Je suis a sec sur un sujet tout bête...
Je m'explique j'invoque un script externe qui me dump un bloc XML en sortie de resultat.

Comme j'en lance pas qu'un (de script), je voudrais les mettre dans un log global ouvert en append.

[code:1]#Erasing the results of yesterday
if ( Test-Path \"$home_result\$result_log\" )
{ clear-content \"$home_result\$result_log\" }

# Execution of the plugins listed
ForEach ($plugin in $listPlugin )
{
#Write-host \"name : $plugin\"
invoke-expression -command \"$plugin \" | Out-File -FilePath \"$home_result\$result_log\" -append

}[/code:1]

Le invoke-expression se passe bien mais mon log est vide. J'ai essayé le tee-object, ou le fait de mettre le >> dans la commande invoquée ...

Mais rien, je suis a sec ... HELP :']


Merci<br><br>Message édité par: exca, à: 15/10/09 10:37

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

Plus d'informations
il y a 14 ans 6 mois #5492 par otokonohito
Bonjour,
je vais essayer de t'aider même si je ne suis pas un expert.

J'ai fait le test suivant chez moi qui fonctionne :

[code:1]$file = \&quot;file.txt\&quot;
$command = \&quot;get-process\&quot;
invoke-expression -command \&quot;$command\&quot; | out-file -filepath \&quot;$home\desktop\$file\&quot; -append[/code:1]

Peux-tu essayer?

Es-tu sur que ta variable $plugin est de type string?
Essaye la syntaxe suivante.

[code:1]invoke-expression -command \&quot;[string]$plugin \&quot; | Out-File -FilePath \&quot;$home_result\$result_log\&quot; -append[/code:1]

Cordialement

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

Plus d'informations
il y a 14 ans 6 mois #5493 par otokonohito
Désolé petite erreur de formatage

[code:1]invoke-expression -command \&quot;[string]$plugin \&quot; | Out-File -FilePath \&quot;$home_result\$result_log\&quot; -append[/code:1]

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

Plus d'informations
il y a 14 ans 6 mois #5494 par exca
j'ai testé le
[code:1]invoke-expression -command \&quot;$command\&quot; | out-file -filepath \&quot;$home\desktop\$file\&quot; -append [/code:1]

Effectivement ça fonctionne

Es-tu sur que ta variable $plugin est de type string?

oui, GM me le confirme


Pour la derniere partie
[code:1]
The term '&lt;' is not recognized as a cmdlet, function, operable program, or scri
pt file. Verify the term and try again.
At line:1 char:2
+ &lt;s &lt;&lt;&lt;&lt; trong&gt;[string]&lt;/strong&gt;D:\plugins\_hotfix.ps1
[/code:1]

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

Plus d'informations
il y a 14 ans 6 mois #5495 par exca
[code:1]Invoke-Expression : Unexpected token 'D:\pl
ugins\_hotfix.ps1' in expression or statement.
At D:\lance_checklist.ps1:63 char:26
+ invoke-expression &lt;&lt;&lt;&lt; -command \&quot;[string]$plugin\&quot; |
Out-File -FilePath \&quot;$home_result\$result_log\&quot; -append[/code:1]

Voila /o\

L'invoke-expression se passe bien puisque je vois le resultat en console, mais c'est le out-file qui pose probleme si je comprend bien, le fichier out est créé mais vide<br><br>Message édité par: exca, à: 15/10/09 11:49

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

Plus d'informations
il y a 14 ans 6 mois #5497 par Laurent Dardenne
Salut,
exca écrit:

je vois le resultat en console,... le fichier out est créé mais vide

Avant de regarder Invoke-expression, vérifie par l'usage d'une variable intermédiaire, si ton script renvoi qq chose dans le pipeline.
On ne peut pas logguer (rediriger) l'affichage de Write-Host :
[code:1]&amp;{write-host \&quot;fait qq chose\&quot;}&gt;log.txt
type log.txt
&amp;{write-Output \&quot;fait qq chose\&quot;}&gt;log.txt
type log.txt
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 15/10/09 12:17

Tutoriels PowerShell

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

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