C'est une question stupide, mais je ne sais tout simplement pas pourquoi cela ne fonctionne pas.
J'essaie de copier les fichiers du dossier A vers le dossier B de manière récursive. Je fais ça:
Copy-Item -Path "C:\FolderA\" -Destination "C:\FolderB\" -recurse -Force -Verbose
Cela fonctionne très bien, pas de problème.
Sauf que le résultat dans FolderB est le suivant:
C:\FolderB\FolderA\file.txt
Alors que je veux que ce soit:
C:\FolderB\file.txt
Quelle chose évidente stupide me manque?
powershell
CleverPatrick
la source
la source
Réponses:
Votre commande indique à PowerShell de copier le dossier lui-même, avec tout son contenu, dans le dossier de destination. Pour copier uniquement le contenu du dossier d'origine, modifiez votre chemin d'accès comme suit:
Notez l'astérisque (*) après le nom du dossier. Cela copiera le contenu (y compris les sous-dossiers) du dossier, mais pas le dossier lui-même dans le dossier de destination.
Utilisation de l'applet de commande Copy-Item
la source
md "C:\FolderB"
avantCopy-Item
semble éviter ce problème.Copy-Item
reproduire la structure du dossier, mais un niveau plus bas (par exemple, ilC:\FolderA\B\C
est copié à laC:\FolderB\C
place deC:\FolderB\B\C
), et peut également échouer lorsque plusieurs sous-dossiers existent. Assurez-vous toujours que le dossier de destination existe avant d'appeler Copy-Item. Cela sent comme un bogue (je ne vois aucune raison pour laquelle ce comportement incohérent serait souhaitable).Vous pouvez utiliser -File -Recurse pour copier uniquement des fichiers de manière récursive:
Copy-Item -Path "C: \ Source" -Destination "C: \ Dest" -File -recurse -Force -Verbose
Ou utilisez -Directory -Recurse pour copier uniquement la structure du dossier empy:
Copy-Item -Path "C: \ Source" -Destination "C: \ Dest" -Directory -recurse -Force -Verbose
Sincères amitiés,
Paul Pedroza
la source
Fonctionnerait également.
la source