none
Move-item avec Recurse et Exclude RRS feed

  • Question

  • Bonjour la communauté !

    Je vous expose mon problème :

    Je souhaite déplacer des fichiers d'un dossier X vers Y mais sans que les fichiers ".pst" soient concernés, dans un monde idéal l'arborescence est recrée à l'identique dans le dossier de destination.

    Voici à quoi ressemble mon script :

    $source = "C:\Lab\Testlab" $dest = "C:\Lab\destination" $exclude = @('*.pst') Get-ChildItem $source -Recurse -Exclude $exclude | Move-Item -Destination {Join-Path $dest $_.FullName.Substring($source.length)}

    Cela ne fonctionne pas, les sous-dossiers du dossier de départ sont déplacés aussi.

    Auriez-vous une idée svp ?

    (En revanche si je fait un copy-item, le comportement du script est impeccable)

    Merci

    vendredi 5 mai 2017 13:56

Réponses

  • Des fois, il ne faut pas chercher trop loin:

    $source = "C:\Lab\Testlab"
    $dest = "C:\Lab\destination"
    $exclude = "*.pst"
    robocopy $source $destination /move /e /xf $exclude /xx /ndl /r:0 /w:0
    

    ça déplace, ça recréé l'arborescence originale, ça exclu les PST....

    B.

    • Marqué comme réponse Pascal.S mardi 9 mai 2017 07:50
    vendredi 5 mai 2017 21:55

Toutes les réponses

  • Salut !

    Voici ce que j'ai pu trouver mais pas tester; peux tu me dire si cela marche de ton côté :

    $filepath = "Original path"
    $filedest = "Destination path"
    $exclude = "ExclusionName"
    CD $filepath
    $Files = GCI -path $filepath | Where-object {$_.name -ne $exclude} 
    foreach ($file in $files){move-item -path $file -destination $filedest}


    • Modifié puffydee13 vendredi 5 mai 2017 14:11 testscript
    vendredi 5 mai 2017 14:08
  • Salut, merci pour ta réponse !

    j'ai testé ton script, il déplace tout le contenu, pour je met bien 

    $exclude = "*.pst"
    j'ai aussi essayé @("*.pst") ou juste *.pst, dans tous les cas il me déplace tout
    vendredi 5 mai 2017 14:19
  • Des fois, il ne faut pas chercher trop loin:

    $source = "C:\Lab\Testlab"
    $dest = "C:\Lab\destination"
    $exclude = "*.pst"
    robocopy $source $destination /move /e /xf $exclude /xx /ndl /r:0 /w:0
    

    ça déplace, ça recréé l'arborescence originale, ça exclu les PST....

    B.

    • Marqué comme réponse Pascal.S mardi 9 mai 2017 07:50
    vendredi 5 mai 2017 21:55
  • Merci, en effet ça fonctionne très bien comme cela !
    mardi 9 mai 2017 07:50