2017-08-04 1 views
-1

J'ai recherché et je n'arrive pas à trouver une solution par moi-même alors je demande de l'aide!Dans la liste des répertoires, copiez tous les sous-dossiers dans un nouvel emplacement, chacun avec son propre dossier.

J'ai une liste de ~ 100 emplacements de fichiers/répertoires. Ils sont situés sur le réseau et j'ai besoin de les récupérer tous et de les stocker localement. J'ai une certaine expérience avec VBA alors j'allais essayer et utiliser cela (peut-être mettre les répertoires dans une feuille de calcul et exécuter une macro à partir de ça ..)

Lorsque je les stocke localement, je dois conserver les noms des répertoires d'où ils viennent.

Toute aide serait grandement appréciée, l'automatisation devenant de plus en plus nécessaire à mesure que l'on m'envoie plus de répertoires et qu'un processus manuel ne sera pas bien adapté à cette évolution.

Toute aide à tous, me pointant dans une direction ou offrant des conseils est grandement appréciée.

Vive

+0

Avez-vous regardé la cmdlet [copy-item] (https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Copy-Item?view=powershell-5.1)? – Sambardo

Répondre

2

Vous pouvez utiliser l'applet de commande PowerShell dans Copy-Item combiné avec les -recurse et -container commutateurs pour copier et préserver la structure du dossier! C'est génial pour sauvegarder un dossier réseau complet, et tous les sous-dossiers aussi!

Voici mon répertoire source.

C:\temp\stack>tree /F 
Folder PATH listing 
Volume serial number is 0000000B 9215:D0CB 
C:. 
├───Dest 
└───Source 
    ├───1 
    │  Archive.rar 
    │  File01.bmp 
    │ 
    ├───2 
    │  Archive.rar 
    │  File01.bmp 
    │ 
    ├───3 
    │  Archive.rar 
    │  File01.bmp 
    │ 
    └───4 
      3.txt 
      Archive.rar 
      File01.bmp 
      Ham.txt 

Comme vous pouvez le voir, j'ai des fichiers et des dossiers dans Source avec les sous-dossiers et sous-fichiers dans chacun. Avec cette simple commande PowerShell, je peux déplacer facilement toute cette structure en Dest.

copy-item -Path c:\temp\stack\source -Destination C:\temp\stack\Dest -Container -Recurse 

Maintenant, j'ai toute cette structure maintenue aussi bien dans le dossier Dest.

C:\temp\stack>tree /F 
Folder PATH listing 
Volume serial number is 000000DE 9215:D0CB 
C:. 
├───Dest 
│ ├───1 
│ │  Archive.rar 
│ │  File01.bmp 
│ │ 
│ ├───2 
│ │  Archive.rar 
│ │  File01.bmp 
│ │ 
│ ├───3 
│ │  Archive.rar 
│ │  File01.bmp 
│ │ 
│ └───4 
│   3.txt 
│   Archive.rar 
│   File01.bmp 
│   Ham.txt 
0

L'élément de copie fonctionnera comme indiqué. Robocopy a également été construit à cette fin, et fonctionnera en cmd ou Powershell. Exécutez robocopy /? pour obtenir des informations sur l'utilisation.

Vous voulez probablement quelque chose comme:

robocopy "Y:\Network\Source\Location" "C:\Local\Machine\Destination\Location" /E 

/E Moyens pour copier le répertoire et tous les sous-répertoires.