large item from files credential create comando childitem powershell copy-item

from - powershell copy-item overwrite



¿Cuál es el significado del argumento de Powershell''s Copy-Item''s-container? (2)

El contenedor del que habla la documentación es la estructura de la carpeta. Si está haciendo una copia recursiva y desea conservar la estructura de la carpeta, usaría el botón -container. (Nota: de manera predeterminada, el interruptor -container se establece en verdadero, por lo que realmente no necesitaría especificarlo. Si quisiera apagarlo, podría usar -container: $false ).

Hay una trampa para esto ... si hace una lista de directorios y la canaliza a Copy-Item, no conservará la estructura de la carpeta. Si desea conservar la estructura de carpetas, debe especificar la propiedad -path y el parámetro -recurse.

Estoy escribiendo un script para MS PowerShell. Este script usa el comando Copy-Item. Uno de los argumentos opcionales para este comando es "-container". La documentación del argumento indica que al especificar este argumento "Conserva los objetos del contenedor durante la operación de copia".

Esto está muy bien, porque yo sería la última persona que querría objetos de contenedor sin conservadores durante una operación de copia. Pero con toda seriedad, ¿qué hace este argumento? Particularmente en el caso en que estoy copiando un árbol de directorio de disco de un lugar a otro, ¿qué importancia tiene esto para el comportamiento del comando Copiar-Elemento?


También encontré la documentación menos que útil. Hice algunas pruebas para ver cómo funciona el parámetro -Recurse junto con -Recurse al copiar archivos y carpetas.

Tenga en cuenta que -Container significa -Container: $true .

Esta es la estructura de archivos que utilicé 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:/ .
  • Usé PowerShell 4.0.

1) Para copiar solo la carpeta fuente (carpeta vacía):

Copy-Item -Path source -Destination ./destination Copy-Item -Path source -Destination ./destination -Container # X:. # ├───destination # │ └───source # └───source (...)

Lo 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 la estructura de la carpeta completa 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 (...)