Question Problème avec Move-Item

Plus d'informations
il y a 13 ans 6 mois #7758 par David
Réponse de David sur le sujet Re:Problème avec Move-Item
Mais comme je débute et que j'ai compris qu'avec le Move-item j'aurais du mal...

J'ai totalement changé la façon de procéder.

Je fais un copier de tout les éléments(selon la date).Ensuite je supprime tout les éléments sans les répertoires.

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

Plus d'informations
il y a 13 ans 6 mois #7772 par Laurent Dardenne
sarlin écrit:

j'ai compris qu'avec le Move-item j'aurais du mal...

Tu n'es pas le seul ;)
Aprés qq essais, voici une possible solution :
[code:1]
$Destination=\"C:\Users\david\Desktop\test2\"
$Origine=\"???\"
cd $Origine
Get-Childitem -recurse |
Where {!$_.PSIsContainer -and {$_.LastWriteTime -gt '08/30/2010'}} |
Foreach {
$CurrentFile=$_.FullName
$NewFile=$CurrentFile -replace ([regex]::Escape($Origine)),$Destination
$TargetDir=Split-Path $NewFile -Parent
write-debug \"`r`n$CurrentFile`r`n$NewFile`r`n$TargetDir\"
$null=New-Item $TargetDir -type directory -ea SilentlyContinue
Move-item $CurrentFile -Force -Destination $TargetDir
}
[/code:1]
Reste à savoir si tu veux ou pas recopier l'arborescence, c'est le cas avec ce code.<br><br>Message édité par: Laurent Dardenne, à: 13/09/10 16:39

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 6 mois #7773 par David
Réponse de David sur le sujet Re:Problème avec Move-Item
Merci beaucoup!!!

C'est testé et approuvé!

Maintenant je vais chercher le comment tu as fait^^<br><br>Message édité par: sarlin, à: 13/09/10 17:17

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

Plus d'informations
il y a 13 ans 6 mois #7777 par Laurent Dardenne
sarlin écrit:

Merci beaucoup!!!

Je t'en prie, ton pb m'a également permis d'apprendre, d'où mon précédent message:
Laurent Dardenne écrit:

Tu n'es pas le seul ;)

sous-entendu, à ne pas savoir le faire.
sarlin écrit:

Maintenant je vais chercher le comment tu as fait

Bah là, un peu d'expérience ne nuit pas.
Ton traitement ressemble à un XCopy, j'ai donc cherché sur le net qq exemples, certes peu probant, mais les premiers liens renvoyés par google portent, si je puis dire, un regarde critique à propos des cmdlets liés au provider FileSystem.
Ton approche autour de Copy-item porte un début de solution, car que ce soit avec move ou copy la présence du répertoire cible semble modifier le comportement de ces cmdlets.

J'ai donc essayé de décomposer le traitement à l'aide des différents cmdlets liés aux providers :
[code:1]
...
Get-Childitem -recurse |
Where {!$_.PSIsContainer -and {$_.LastWriteTime -gt '08/30/2010'}} |
Foreach {
$CurrentFile=$_.FullName
$NewFile=$CurrentFile -replace ([regex]::Escape($Origine)),$Destination
$TargetDir=Split-Path $NewFile -Parent
write-debug \&quot;`r`n$CurrentFile`r`n$NewFile`r`n$TargetDir\&quot;
$null=New-Item $TargetDir -type directory -ea SilentlyContinue
Copy-item $CurrentFile -Force -Destination $TargetDir -Whatif
remove-item $CurrentFile -Whatif
}
[/code:1]
La présence du filtre facilite les choses, une fois ceci validé on s'aperçoit, à vérifier tout de même, qu'avec la présence du répertoire cible on s'assure d'un comportement prévisible.
Je reste prudent sur cet énoncé, car je n'ai pas créé de jeux de tests pertinents.

Si on regarde sur MS-Connect les posts liés à move-item ou copy-item, nombreux sont ceux fermés ayant pour cause \&quot;by design\&quot;, le problème c'est que la raison \&quot;by design\&quot; n'est connu que l'équipe de dev !
En creux via MS-Connect on peut le retrouver.
Il faut avec PS savoir perdre du temps avec des broutilles !!!

Dans ce contexte de déplacement on peut aussi constater que les objets, une fois passés dans le pipeline, devraient posséder un champ origine, par exemple via un Add-MemberOrigine, enfin ça c'est une autre réflexion...

Tutoriels PowerShell

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

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