Question
RESOLU :Problème boucle robocopy
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
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
Faut-il absolument passer par des conditions où il existe un argument excluant ces dossiers \"inexistants ?\"
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
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
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 ...
[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.
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
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 ^^
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
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:
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
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.
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
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
)
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
Connexion ou Créer un compte pour participer à la conversation.
- Franck B-A
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 28
- Remerciements reçus 0
il y a 12 ans 5 mois #16051
par Franck B-A
Réponse de Franck B-A sur le sujet RESOLU :Problème boucle robocopy
bonjour,
ça fait un bail que je ne me suis pas penché sur ce petit script
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 ?
Merci encore à vous.
Reste plus qu' à me lancer dans un autre \"projet\" de script ^^<br><br>Message édité par: bigkifran, à: 27/09/13 12:03
ça fait un bail que je ne me suis pas penché sur ce petit script
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 ?
Merci encore à vous.
Reste plus qu' à me lancer dans un autre \"projet\" 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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- RESOLU :Problème boucle robocopy