Question [Résolu] Script powershell robocopy

Plus d'informations
il y a 13 ans 2 mois #13552 par phiphi917
Réponse de phiphi917 sur le sujet Re:Script powershell robocopy
Le reports HTML est trop compliqué pour moi :s

[code:1]$resultat = Get-Content D:\texte2.txt | ForEach-Object {

$O=New-Object PSObject -Property @{
Debut=Get-Date -Format T;
Fin=Get-Date -Format T;
ExitCode=0;
Etat=$Null
Source=$_
}

$O.Debut

robocopy $O.Source /E /A-:H /purge /Z /R:0 /W:0 /NP /MT /log+:d:\log.txt

$O.Fin

if ($LASTEXITCODE -eq 0)
{
$O.ExitCode = \"Copie OK. Aucun changement. Le répertoire source était identique au répertoire de destination.\"
$O.Etat = \"SUCCESS\"
}
elseif ($LASTEXITCODE -eq 1)
{
$O.ExitCode = \"Copie OK. Un ou plusieurs fichiers ont été copiés avec succès du répertoire source au répertoire de destination.\"
$O.Etat = \"SUCESS\"
}
elseif ($LASTEXITCODE -eq 2)
{
$O.ExitCode = \"Copie OK. Certains fichiers ou répertoires supplémentaires ont été détectés et copiés avec succès.\"
$O.Etat = \"SUCESS\"
}
elseif ($LASTEXITCODE -eq 3)
{
$O.ExitCode = \"Copie OK. Certains fichiers supplémentaires ont été copiés avec succès.\"
$O.Etat = \"SUCCESS\"
}
elseif ($LASTEXITCODE -eq 4)
{
$O.ExitCode = \"Copie OK. Une incohérence entre la source et la destination de la sauvegarde a été détectée.\"
$O.Etat = \"WARNING\"
}
elseif ($LASTEXITCODE -eq 5)
{
$O.ExitCode = \"Copie OK. Certains fichiers ont été copiés et d'autres ont généré une incohérence entre la source et la destination.\"
$O.Etat = \"WARNING\"
}
elseif ($LASTEXITCODE -eq 6)
{
$O.ExitCode = \"Copie OK. Certains fichiers et dossiers suplémentaires ont généré une incohérence entre la source et la destination.\"
$O.Etat = \"WARNING\"
}
elseif ($LASTEXITCODE -eq 7)
{
$O.ExitCode = \"Copie OK. Certains fichiers présents et supplémentaires on générés une incohérence entre la source et la destination.\"
$O.Etat = \"WARNING\"
}
elseif ($LASTEXITCODE -ge 8)
{
$O.ExitCode = \"Echec de la copie.\"
$O.Etat = \"CRITICAL\"
}
Else
{
$O.ExitCode = \"Le code de sortie est inconnue\"
$O.Etat = \"UNKNOWN\"
}

}

$resultat[/code:1]

Je voudrais exploiter mes variables dans un tableau, meme un tableau sous powershell.

Est-ce que je peux exploiter mes variables de cette manière ?

[code:1]
$tableau = \"_$\",$O.Etat,$O.Debut,$O.Fin,$O.ExitCode [/code:1]

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

Plus d'informations
il y a 13 ans 2 mois #13557 par Laurent Dardenne
N'oublie pas d'émettre ton objet créé dans le pipeline :
[code:1]
Else
{
$O.ExitCode = \"Le code de sortie est inconnue\"
$O.Etat = \"UNKNOWN\"
}
#émet l'objet créé dans le pipeline
$O
}
$Resultat
[/code:1]

phiphi917 écrit:

Est-ce que je peux exploiter mes variables de cette manière ?

Quel est l'objectif ?
En quoi l'objet initial est insuffisant ?<br><br>Message édité par: Laurent Dardenne, à: 8/01/13 19:19

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13561 par phiphi917
Réponse de phiphi917 sur le sujet Re:Script powershell robocopy
l'objectif final c'est d'avoir un résumé de ce qui a était réalisé.

avoir un tableau

[code:1]
source_destination etat description


serveur1 serveur2 SUCESS OK
serveur1 serveur3 SUCESS OK
serveur1 serveur4 WARNING Différent

[/code:1]

J'arrive pas à comprendre comment je peux arriver a ce résultat.<br><br>Message édité par: phiphi917, à: 8/01/13 20:21

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

Plus d'informations
il y a 13 ans 2 mois #13562 par Laurent Dardenne
phiphi917 écrit:

l'objectif final c'est d'avoir un résumé de ce qui a était réalisé.

j'ai compris.

As-tu modifié ton code comme indiqué dans mon dernier post ?<br><br>Message édité par: Laurent Dardenne, à: 8/01/13 20:37

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13564 par phiphi917
Réponse de phiphi917 sur le sujet Re:Script powershell robocopy
je viens de le modifier.

j'ai comme résultat :

[code:1]22:03:10

Fichier journal : d:\log.txt
22:03:10


Fin : 22:03:10
Debut : 22:03:10
Etat : SUCCESS
Source : \&quot;d:\test\&quot; \&quot;d:\test2\&quot;
ExitCode : Copie OK. Aucun changement. Le répertoire source était identique au répertoire de destination.][/code:1]

Pas mal déjà ^^<br><br>Message édité par: phiphi917, à: 8/01/13 22:50

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

Plus d'informations
il y a 13 ans 2 mois #13565 par Laurent Dardenne
phiphi917 écrit:

Pas mal déjà ^^

C'est vrai que c'est un bon début.
Pour le champ ExitCode il devrait contenir la valeur de $LASTEXITCODE.
Ensuite sa valeur devrait pointer sur une entrée ordonnée d'un tableau de constante de chaîne, pas besoin de dupliquer les infos, un code sur un byte suffit.
Ce qui facilitera les filtres basés sur Where-object, penser Object et pas parsing de texte :whistle:

Tutoriels PowerShell

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

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