Question RESOLU :Problème boucle robocopy

Plus d'informations
il y a 12 ans 6 mois #15766 par Franck B-A
Réponse de Franck B-A sur le sujet Re:Problème boucle robocopy
Tiens bin là c'est le meilleure ^^

J'ai un \"bug\" sur le robocopy

par exemple :
[code:1]
$MigAPH7 = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"*7\"} | Where-Object { $_.Name -notmatch \"g-*\" } | Where-Object { $_.Name -notmatch \"m-*\"}
foreach ($homes in $MigAPH7)
{
robocopy \"$CONTAPH\$homes\" \"$RepCible\7\$homes\" /E /COPY:«»DAT /NP /TEE /ZB /R:5 /W:5 /LOG+:$RobLogFile
}
[/code:1]
celà fonctionne tant que j' ai des comptes finissant par 7.
S'il y'en pas, bin ça me copie tout dedans :blink:

Faut-il absolument passer par des conditions où il existe un argument excluant ces dossiers \"inexistants ?\"

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

Plus d'informations
il y a 12 ans 6 mois #15767 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Problème boucle robocopy
Il faut peut être s'assurer que tu récupères bien quelques choses dans $MigAPH7 :

[code:1]
$MigAPH7 = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"*7\" -and $_.Name -notmatch \"g-*\" -and $_.Name -notmatch \"m-*\"}

if($MigAPH7 -ne $null){
foreach ($homes in $MigAPH7){
robocopy \"$CONTAPH\$homes\" \"$RepCible\7\$homes\" /E /COPY:«»DAT /NP /TEE /ZB /R:5 /W:5 /LOG+:$RobLogFile
}
}
[/code:1]

Aussi, voir l'autre possibilité pour le filtre avec Where-Object, dans ce même exemple ...

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

Plus d'informations
il y a 12 ans 6 mois #15772 par Franck B-A
Réponse de Franck B-A sur le sujet Re:Problème boucle robocopy
Merciiiii
en effet ça marche mieux ^^
surtout que j'ai testé en mettant $_ -ne \"$null\" après un pipe genre | where-object ...

merci aussi pour l' organisation du filtre ;)

Vivement la formation et le bouquin que je puisse y comprendre les subtilités ^^

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

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

Vivement la formation et le bouquin que je puisse y comprendre les subtilités ^^


Cela peut être important, mais cela ne suffira pas.

C'est l'expérience et le temps passé qui comptent le plus, car cela prend du temps. Il faut donc le prendre ;)

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

Plus d'informations
il y a 12 ans 6 mois #15776 par Franck B-A
Réponse de Franck B-A sur le sujet Re:Problème boucle robocopy
complètement d'accord !!

malheureusement je n'ai pas assez d'une journée pour me pencher sur tout ce que je voudrai \"scripter\" ^^

sinon pour la gestion d'erreur j'ai mis \"tout simplement\" en fin de script :

[code:1]
###########################
# Contrôle si une erreur lors du Robocopy
###########################

$MsgError = [Windows.Forms.MessageBox]
if ($LastExitCode -ne 0){
$MsgError::«»show( \"Une erreur s'est produite lors du Robocopy. Merci de voir le contenu du log '$RobLogFile' de '$CONTAPH'\"«»)
}
else{
$MsgError::«»show(\"la copie de '$CONTAPH' est OK\"«»)

}
[/code:1]
($CONTAPH étant le répertoire source :P )

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

Plus d'informations
il y a 12 ans 5 mois #16051 par Franck B-A
bonjour,

ça fait un bail que je ne me suis pas penché sur ce petit script :P

voilà il est un peu \"mieux\" et plus condensé ^^:
ce qui donne :

[code:1]

clear-host

############################
#Fonction de la selection du repertoire contenant les profils utilisateurs
###########################

$message = \"selection du repertoire contenant les profils utilisateurs \"
$title = \"Profils Utilisateurs\"

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

###########################
#Export et split des comptes suivant les unites (fin des cptes= 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
#Ajout droits sur Repertoires Utilisateurs (mes Docs, Bureau, AppData)
###########################

$Racine = \"\\Domaine\REP\DOSSIER-REDIR\"
$RobLogFile = \"\\DOMAINE\Log\LOG-USR-BV\Rob_Log\"
$Block = {
$Robocopy = robocopy \"$CONTAPH\$homes\" \"$RepCible\" /E /COPY:«»DAT /NP /TEE /ZB /R:5 /W:5 /LOG+:\"$RobLogFile$homes\".log
$ace = new-object Security.AccessControl.FileSystemAccessRule(\"Wprod\$homes\", \"FullControl\", \"ContainerInherit, ObjectInherit\", \"None\", \"Allow\"«»)
$acl = get-acl $RepCible
$acl.AddAccessRule($ace)
set-acl $RepCible $acl
}

#User UNITE 0
$MigUsr0 = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"*0\" -and $_.Name -notmatch \"g-*\" -and $_.Name -notmatch \"m-*\" -and $_.Name -notmatch \"aut*\"}
if ($MigUsr0 -ne $null) {
foreach ($homes in $MigUsr0) {
$RepCible = \"$Racine-0\$homes\"
&$Block
}}
[/code:1]

on va de 0 à 9 ou pas, on ajoute ce que l'on souhaite comme exclusions ou inclusions etc ...

[code:1]
# Compte generique G-
$MigUsrg = Get-ChildItem \"$CONTAPH\" | Where-Object {$_.Name -like \"g-*\"}
if ($MigAPHg -ne $null) {
foreach ($homes in $MigUsrg ) {
$RepCible = \"$Racine-G\$homes\"
&$Block
}}


###########################
# Controle si une erreur lors du Robocopy
###########################

$MsgError = [Windows.Forms.MessageBox]
if ($LastExitCode -ne 0){
$MsgError::«»show( \"Une erreur s'est produite lors du Robocopy. Merci de voir le contenu du log de '$CONTAPH' vers '$Racine' dans \"\\DOMAINE\Log\LOG-USR-BV\" )
}
else{
$MsgError::«»show(\"la copie de '$CONTAPH' vers '$Racine' est OK / log = \"\\DOMAINE\Log\LOG-USR-BV\"«»)

}

[/code:1]

Je pense que je peux mettre résolu, nan ? :whistle:

Merci encore à vous.

Reste plus qu' à me lancer dans un autre \&quot;projet\&quot; de script ^^<br><br>Message édité par: bigkifran, à: 27/09/13 12:03

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

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