IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Redirection de la sortie standard [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut Redirection de la sortie standard
    Bonjour.
    J'ai un batch qui lance un ps1.
    Je souhaiterai renvyer la sortie standard du powershell vers le fichier de log du batch.
    Que les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $file = 'C:\RVA\MailCommTerrainV6.ps1.txt' 
    "On entre dans MailCommTerrainV6.ps1" >> $file
    $emailTo >> $file
    Send-MailMessage -to $emailTo -CC $emailcopie -from $emailFrom -Subject $sujet -body $body -SmtpServer $SMTPClient -Encoding $encoding >> $file
    envoie ces log vers le fichier de log du batch qui lance le powershell.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    J'ai essayé 3>&1 pour le warning, sans résultat.
    Il faut que j'écrive
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "On entre dans MailCommTerrainV6.ps1" &>  
    $emailTo &>  
    Send-MailMessage -to $emailTo -CC $emailcopie -from $emailFrom -Subject $sujet -body $body -SmtpServer $SMTPClient -Encoding $encoding &>
    dans mon powershell pour obtenir les logs avec ceux générés par le batch, pour obtenir ce que je veux.
    Pour ce dernier cas, j'essaie lundi.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Bon là, je n'ai rien compris.
    Je viens de réessayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "On entre dans MailCommTerrain.ps1" 4>1
    $emailcopie 1>1
    et je n'ai rien de correct.
    Je n'ai donc pas compris la bonne syntaxe.
    Curieusement mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SMTPClient.Send($emailMessage)
    renvoie naturellement vers le fochier de log généré par le batch qui lance le powershell.

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    si tu veux redirigé tous les messages d'un script dans un log
    ecrit ton script normalement
    et appel ton script comme ceci :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    . 'c:\temp\test.ps1' *> "c:\temp\a.log"

    exemple de contenue d'un script et du resultat via la commande ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Write-Warning "essai de message warning"
    
    Write-Error "essai messaeg erreur complet"
    
    Get-ChildItem "essai erreur generé par get-childitem"
    
    write-output "essai message sans erreur de script"
    
    "essai chaine de caractere seul sans erreur de script"
    
    $essaivar = "essai message via variable sans erreur de script"
    $essaivar
    
    write-host "essai que sur la console" 
    
    $var1 = Get-ChildItem 
    "même les objets sont redirigé " + $var1.Count 
    
    $var1[0..3].name # ecrit dans log tand que c'est des strings
    résultat dans le fichier a.log :
    essai de message warning
    C:\temp\test.ps1 : essai messaeg erreur complet
    Au caractère Ligne:1 : 1
    + . 'c:\temp\test.ps1' *> "c:\temp\a.log"
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: ( [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,test.ps1

    Get-ChildItem : Impossible de trouver le chemin d'accès «*C:\WINDOWS\system32\WindowsPowerShell\v1.0\essai erreur generé par get-childitem*», car il n'existe pas.
    Au caractère C:\temp\test.ps1:7 : 1
    + Get-ChildItem "essai erreur generé par get-childitem"
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (C:\WINDOWS\syst...r get-childitem:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

    essai message sans erreur de script
    essai chaine de caractere seul sans erreur de script
    essai message via variable sans erreur de script
    essai que sur la console
    même les objets sont redirigé 36
    en
    en-US
    Examples
    fr
    exécute le script normalement pour que tu puisse comparer le resultat

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Merci.
    On est donc obligé d'indiquer au script powershell le répertoire et le nom de fichier de log.
    On ne peut rediriger les log PS1 vers le script appelant (le batch pour moi) autrement.

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    Citation Envoyé par 69Pierre Voir le message
    Merci.
    On est donc obligé d'indiquer au script powershell le répertoire et le nom de fichier de log.
    jusque la oui normal ! il ne peut connaître la destination si on ne l'indique pas quelque part !

    comment voyais tu la chose ?


    On ne peut rediriger les log PS1 vers le script appelant (le batch pour moi) autrement.
    si je comprend bien tu veux que un script reçoive en direct les messages d'un autre script (tu propose le script appelant)
    pour qu'il réagisse en fonction du log ?
    et donc en temps réel ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redirection de la sortie standard
    Par Dud225 dans le forum C
    Réponses: 12
    Dernier message: 11/04/2007, 23h56
  2. redirection de la sortie standard
    Par mauroyb0 dans le forum Langage
    Réponses: 6
    Dernier message: 27/12/2006, 19h18
  3. Redirection de la sortie standard
    Par ankou82 dans le forum SDL
    Réponses: 20
    Dernier message: 29/05/2006, 13h54
  4. [Débutant(e)] Redirection de la sortie standard
    Par salber dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 17/06/2005, 15h34
  5. redirection de la sortie standard
    Par sorari dans le forum C++
    Réponses: 8
    Dernier message: 19/05/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo