Question

J'ai une gamme de fichiers qui doivent être déplacés vers des emplacements de sauvegarde.Je collecte le tableau des articles souhaités à l'aide d'une commande get-Childitem.Je cherche à utiliser Robocopy pour déplacer des choses une fois que la liste des articles collectés est prêt.

$paths=@()

$srcitems = get-childitem $paths 

robocopy $srcitems $dest /move

Est-ce que cela fonctionne?
Sinon, quelle est la meilleure façon de conduire à chaque élément individuel à la robocopie?

Merci
SteelUser

Était-ce utile?

La solution

           Usage :: ROBOCOPY source destination [file [file]...] [options]

         source :: Source Directory (drive:\path or \\server\share\path).
    destination :: Destination Dir  (drive:\path or \\server\share\path).
           file :: File(s) to copy  (names/wildcards: default is "*.*").

Robocopy attend un répertoire source, un répertoire de destination et une spécification de fichier comme arguments.Il est difficile de donner une réponse définitive sans savoir quelle ressemble votre "liste des articles collectés".Si ce sont des répertoires sources, vous pouvez alors vous permettre de rechercher cette liste via une ivocalisation de Robocopy et une spécification WildCard HardCard pour les noms de fichiers.Si vous avez une liste de fichiers, vous devez diviser ceux désactivés dans Directory / Fichier (j'utiliserais Split-Chemin) et faire une invocation de Robocopy pour chaque répertoire source, en spécifiant la liste des fichiers en ce sens.Répertoire.

Autres conseils

Scénario similaire, la publication au cas où il aide:

Je devais copier (déplacer) certains dossiers tout commençant par "vendredi" et articles à l'intérieur d'une source à une destination et ont abouti à cela qui semble fonctionner:

Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE }

  • La partie "get-Childitem" répertorie les noms de dossiers (-Name) commençant avec "vendredi" (-Filtre "vendredi *").
  • Cela se fait paupée vers l'objet de foresach où Robocopy s'exécutera pour chaque instance trouvée.
  • L'argument robocopy / mouvement déplace évidemment les dossiers / fichiers.

    Je suis assez nouveau à PowerShell;Pas sûr s'il y a une meilleure façon.Le script est toujours en marche, mais jusqu'à présent, si bon.

    @ walid2mi utilise le déménagement-item sur lequel je suis sûr fonctionne;J'aime juste la robocopie B / C, il a un mode redartable (/ z).

Syntaxe qui a fonctionné pour moi:

$srcPath = "C:\somefolder"
$dstPath = "C:\someOtherFolder"
$srcitems = get-childitem $srcPath #whatever condition

$srcitems | Select Name | ForEach-Object {robocopy $srcPath $dstPath $_.name}

(qui est évident selon la documentation de la robocopy)

Robocopy

Get-ChildItem $paths | Move-Item -Destination $dest  -WhatIf

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top