Question RESOLU :Problème boucle robocopy

Plus d'informations
il y a 12 ans 6 mois #15751 par Franck B-A
Réponse de Franck B-A sur le sujet Re:Problème boucle robocopy
Alors voilà:

j'ai fini par contourner le problème (je sais pas si c'est bien ...)

le script (pas final) passe de la tartine indigeste à

[code:1]
############################
#Fonction de la sélection du répertoire contenant les profils utilisateurs
###########################

$message = \"sélection du répertoire contenant les profils utilisateurs \"
$title = \"Profils APH\"

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$CONTAPH = [Microsoft.VisualBasic.Interaction]::InputBox(\"$message\", \"$title\" )

###########################
#Export et split des APH suivant les unités (fin des APH = 0,1...m ou g)
###########################

Get-ChildItem \"$CONTAPH\" | select-object Name | sort-object Name | Export-CSV \"C:\temp\ContAPH.csv\" -NoTypeInformation -delimiter \";\" -Encoding Unicode


###########################
#Lancement ROBOCOPY
###########################



$MigAPH0 = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"*0\"}
foreach ($homes in $MigAPH0)
{
$RepCible = \"C:\temp\Migration\copie\"
robocopy \"$CONTAPH\$homes\" \"$RepCible\0\$homes\" /E /COPY:«»DAT /NP /LOG:\"C:\Temp\Rob_logAPH0.log\" /TEE /ZB /R:5 /W:5

}
$MigAPH1 = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"*1\"}
foreach ($homes in $MigAPH1)
{
$RepCible = \"C:\temp\Migration\copie\"
robocopy \"$CONTAPH\$homes\" \"$RepCible\1\$homes\" /E /COPY:«»DAT /NP /LOG:\"C:\Temp\Rob_logAPH0.log\" /TEE /ZB /R:5 /W:5

}
$MigAPHm = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"m-*\"}
foreach ($homes in $MigAPHm)
{
$RepCible = \"C:\temp\Migration\copie\"
robocopy \"$CONTAPH\$homes\" \"$RepCible\m\$homes\" /E /COPY:«»DAT /NP /LOG:\"C:\Temp\Rob_logAPH0.log\" /TEE /ZB /R:5 /W:5

}
$MigAPHg = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"g-*\"}
foreach ($homes in $MigAPHg)
{
$RepCible = \"C:\temp\Migration\copie\"
robocopy \"$CONTAPH\$homes\" \"$RepCible\g\$homes\" /E /COPY:«»DAT /NP /LOG:\"C:\Temp\Rob_logAPH0.log\" /TEE /ZB /R:5 /W:5

}
[/code:1]
Bon il est pas fini mais je le trouve beaucoup mieux ^^<br><br>Message édité par: bigkifran, à: 27/08/13 16:55

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

Plus d'informations
il y a 12 ans 6 mois #15752 par Matthew BETTON
Bonjour,

Laurent Dardenne écrit:

Salut,
un détail en passant, il n'y a pas de gestion du code retour de Robocopy...


Un exemple :

[code:1]
$RobocopyLogFile = \&quot;D:\Robocopy.log\&quot;
$CommandLine = \&quot;robocopy $SourceLocation $DestinationLocation *.* /Copyall /R:3 /W:3 /NP /ETA \&quot;
Write-Host \&quot;Exécution de '$CommandLine'\&quot;
$CaptureOutput = Invoke-Expression -Command $CommandLine
$CaptureOutput | Out-File $RobocopyLogFile -append
# Contrôle si une erreur a eu lieu lors du Robocopy
$Isfailure = ($CaptureOutput -match \&quot;ERROR :\&quot;«») -or ($CaptureOutput -match \&quot;ERREUR :\&quot;«»)
if ($Isfailure){
Write-Error \&quot;Une erreur s'est produite lors du Robocopy. Merci de voir le contenu du log '$RobocopyLogFile'\&quot;
}
else{
Write-Host \&quot;la copie est OK\&quot;
}
[/code:1]

Aussi, utiliser la variable '$LastExitCode' puisqu'il s'agit de l'exécution d'un programme externe.

@ +

Matthew BETTON

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

Plus d'informations
il y a 12 ans 6 mois #15753 par Laurent Dardenne
bigkifran écrit:

Bon il est pas fini mais je le trouve beaucoup mieux

+1
Tu peux encore factoriser, ainsi tu passerais de la tartine à la biscotte :)

Il faut juste savoir, je ne connais pas les options de robocopy par cœur, si le fichier de log est complété ou écrasé à chaque appel.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 6 mois #15756 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Problème boucle robocopy
Laurent Dardenne écrit:

Il faut juste savoir, je ne connais pas les options de robocopy par cœur, si le fichier de log est complété ou écrasé à chaque appel.


Pour ajouter au log déjà existant (append) :

[code:1]
/LOG+:\&quot;C:\Temp\Rob_logAPH0.log\&quot;
[/code:1]

le petit 'plus' qui va bien :)<br><br>Message édité par: Matthew BETTON, à: 27/08/13 18:18

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

Plus d'informations
il y a 12 ans 6 mois #15758 par Laurent Dardenne
Matthew BETTON écrit:

le petit 'plus' qui va bien :

ça c'est du travail d'équipe !

Hé oui, le dev seul c'est bien, à deux c'est mieux et à plusieurs c'est bien meilleur :laugh:

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 6 mois #15760 par Franck B-A
Réponse de Franck B-A sur le sujet Re:Problème boucle robocopy
Je ne peux que plussoyer ^^

Je vais donc essayer de \&quot;factoriser\&quot; et je vais incrémenter le log.
ça je sais faire ^^ mais comme je voulais un log par unité ce qui finalement est limite une aberration ...


Merci encore pour votre aide !
je vous tiens au café ;)

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

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