J'ai également trouvé la documentation moins qu'utile. J'ai fait quelques tests pour voir comment le paramètre -Container
fonctionne en conjonction avec -Recurse
lors de la copie de fichiers et de dossiers.
Notez que -Container
signifie -Container: $true
.
C'est la structure de fichier que j'ai utilisé pour les exemples:
# X:.
# ├───destination
# └───source
# │ source.1.txt
# │ source.2.txt
# │
# └───source.1
# source.1.1.txt
- Pour tous les exemples, l'emplacement actuel (PWD) est
X:\
.
- J'ai utilisé PowerShell 4.0.
1) Pour copier uniquement le dossier source (dossier vide):
Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
# X:.
# ├───destination
# │ └───source
# └───source (...)
Ce qui suit donne une erreur:
Copy-Item -Path source -Destination .\destination -Container: $false
# Exception: Container cannot be copied to another container.
# The -Recurse or -Container parameter is not specified.
2) Pour copier l'ensemble structure de dossiers avec des fichiers:
Copy-Item -Path source -Destination .\destination -Recurse
Copy-Item -Path source -Destination .\destination -Recurse -Container
# X:.
# ├───destination
# │ └───source
# │ │ source.1.txt
# │ │ source.2.txt
# │ │
# │ └───source.1
# │ source.1.1.txt
# └───source (...)
3) Pour copier tous les descendants (fichiers et dossiers) dans un seul dossier:
Copy-Item -Path source -Destination .\destination -Recurse -Container: $false
# X:.
# ├───destination
# │ │ source.1.1.txt
# │ │ source.1.txt
# │ │ source.2.txt
# │ │
# │ └───source.1
# └───source (...)
qui est très clair. Je vous remercie! –
-container est un commutateur, il a donc besoin de ':' pour le passage de la valeur. '-container: $ false'. –