Yo también encontré la documentación menos que útil. Hice algunas pruebas para ver cómo funciona el parámetro -Container
junto con -Recurse
al copiar archivos y carpetas.
Tenga en cuenta que -Container
significa -Container: $true
.
Esta es la estructura de archivos que he usado para los ejemplos:
# X:.
# ├───destination
# └───source
# │ source.1.txt
# │ source.2.txt
# │
# └───source.1
# source.1.1.txt
- Para todos los ejemplos, la ubicación actual (PWD) es
X:\
.
- Utilicé PowerShell 4.0.
1) Para copiar sólo la carpeta de origen (carpeta vacío):
Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
# X:.
# ├───destination
# │ └───source
# └───source (...)
El siguiente da un error:
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) Para copiar el conjunto estructura de carpetas con archivos:
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) Para copiar todos los descendientes (archivos y carpetas) en una sola carpeta:
Copy-Item -Path source -Destination .\destination -Recurse -Container: $false
# X:.
# ├───destination
# │ │ source.1.1.txt
# │ │ source.1.txt
# │ │ source.2.txt
# │ │
# │ └───source.1
# └───source (...)
Eso es muy claro. ¡Gracias! –
-container es un interruptor, por lo que necesita ':' para pasar el valor. '-container: $ false'. –