Compartir a través de


Copy-Item

Copia un elemento de una ubicación a otra.

Sintaxis

Path (valor predeterminado)

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

LiteralPath

Copy-Item
    [[-Destination] <String>]
    -LiteralPath <String[]>
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

Description

El cmdlet Copy-Item copia un elemento de una ubicación a otra en el mismo espacio de nombres. Por ejemplo, puede copiar un archivo en una carpeta, pero no puede copiar un archivo en una unidad de certificado.

Este cmdlet no corta ni elimina los elementos que se copian. Los elementos concretos que el cmdlet puede copiar dependen del proveedor de PowerShell que expone el elemento. Por ejemplo, puede copiar archivos y directorios en una unidad del sistema de archivos y claves del Registro y entradas en la unidad del Registro.

Este cmdlet puede copiar y cambiar el nombre de los elementos en el mismo comando. Para cambiar el nombre de un elemento, escriba el nuevo nombre en el valor del parámetro destination de . Para cambiar el nombre de un elemento y no copiarlo, use el cmdlet Rename-Item.

Ejemplos

Ejemplo 1: Copiar un archivo en el directorio especificado

En este ejemplo se copia el archivo mar1604.log.txt en el directorio C:\Presentation. El archivo original no se elimina.

Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"

Ejemplo 2: Copia del contenido del directorio en un directorio existente

En este ejemplo se copia el contenido del directorio C:\Logfiles en el directorio C:\Drawings existente. El directorio Logfiles no se copia.

Si el directorio Logfiles contiene archivos en subdirectorios, esos subdirectorios se copian con sus árboles de archivos intactos. De forma predeterminada, el parámetro Container se establece en True, que conserva la estructura del directorio.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse

Nota:

Si necesita incluir el directorio Logfiles en la copia, quite el \* de la ruta de acceso de . Por ejemplo:

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse

Ejemplo 3: Copia del contenido del directorio en un nuevo directorio

En este ejemplo se copia el contenido del directorio de origen de C:\Logfiles y se crea un nuevo directorio de destino. El nuevo directorio de destino, \Logs se crea en C:\Drawings.

Para incluir el nombre del directorio de origen, copie en un directorio de destino existente como se muestra en ejemplo 2. O bien, asigne un nombre al nuevo directorio de destino con el mismo que el directorio de origen.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse

Nota:

Si el Ruta de acceso incluye \*, todo el contenido del archivo del directorio, sin los árboles de subdirectorios, se copian en el nuevo directorio de destino. Por ejemplo:

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse

Ejemplo 4: Copiar un archivo en el directorio especificado y cambiar el nombre del archivo

En este ejemplo se usa el cmdlet Copy-Item para copiar el script de Get-Widget.ps1 desde el directorio \\Server01\Share al directorio \\Server12\ScriptArchive. Como parte de la operación de copia, el comando cambia el nombre del elemento de Get-Widget.ps1 a Get-Widget.ps1.txt, por lo que se puede adjuntar a los mensajes de correo electrónico.

Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"

Ejemplo 5: Copiar un archivo en un equipo remoto

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia test.log de la carpeta D:\Folder001 a la carpeta C:\Folder001_Copy del equipo remoto mediante la información de sesión almacenada en la variable $Session. El archivo original no se elimina.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session

Ejemplo 6: Copiar todo el contenido de una carpeta en un equipo remoto

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia todo el contenido de la carpeta D:\Folder002 al directorio C:\Folder002_Copy del equipo remoto mediante la información de sesión almacenada en la variable $Session. Las subcarpetas se copian con sus árboles de archivo intactos.

$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session

Ejemplo 7: Copiar recursivamente todo el contenido de una carpeta en un equipo remoto

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia todo el contenido de la carpeta D:\Folder003 al directorio C:\Folder003_Copy del equipo remoto mediante la información de sesión almacenada en la variable $Session. Las subcarpetas se copian con sus árboles de archivo intactos. Dado que se usa el parámetro recurse, la operación crea la carpeta Folder003_Copy si aún no existe.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse

Ejemplo 8: Copiar un archivo en un equipo remoto y, a continuación, cambiar el nombre del archivo

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia scriptingexample.ps1 de la carpeta D:\Folder004 a la carpeta C:\Folder004_Copy del equipo remoto mediante la información de sesión almacenada en la variable $Session. Como parte de la operación de copia, el comando cambia el nombre del elemento de scriptingexample.ps1 a scriptingexample_copy.ps1, por lo que se puede adjuntar a los mensajes de correo electrónico. El archivo original no se elimina.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

Ejemplo 9: Copiar un archivo remoto en el equipo local

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia test.log desde el C:\MyRemoteData\ remoto a la carpeta D:\MyLocalData local mediante la información de sesión almacenada en la variable $Session. El archivo original no se elimina.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

Ejemplo 10: Copiar todo el contenido de una carpeta remota en el equipo local

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia todo el contenido de la carpeta remota C:\MyRemoteData\scripts en la carpeta D:\MyLocalData local mediante la información de sesión almacenada en la variable $Session. Si la carpeta scripts contiene archivos en subcarpetas, esas subcarpetas se copian con sus árboles de archivos intactos.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session

Ejemplo 11: Copiar recursivamente todo el contenido de una carpeta remota en el equipo local

Se crea una sesión en el equipo remoto denominado Server01 con la credencial de Contoso\User01 y almacena los resultados en la variable denominada $Session.

El cmdlet Copy-Item copia todo el contenido de la carpeta remota C:\MyRemoteData\scripts en la carpeta D:\MyLocalData\scripts local mediante la información de sesión almacenada en la variable $Session. Dado que se usa el parámetro recurse , la operación crea la carpeta scripts si aún no existe. Si la carpeta scripts contiene archivos en subcarpetas, esas subcarpetas se copian con sus árboles de archivos intactos.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse

Parámetros

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Container

Indica que este cmdlet conserva los objetos de contenedor durante la operación de copia. De forma predeterminada, el parámetro container se establece en True.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:True
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Credential

Nota:

Este parámetro no es compatible con ningún proveedor instalado con PowerShell. Para suplantar a otro usuario o elevar las credenciales al ejecutar este cmdlet, use Invoke-Command.

Propiedades de parámetro

Tipo:PSCredential
Valor predeterminado:Current user
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Destination

Especifica la ruta de acceso a la nueva ubicación. El valor predeterminado es el directorio actual.

Para cambiar el nombre del elemento que se va a copiar, especifique un nuevo nombre en el valor del parámetro Destination.

Propiedades de parámetro

Tipo:String
Valor predeterminado:Current directory
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:1
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Exclude

Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet excluye en la operación. El valor de este parámetro define el parámetro Path. Escriba un elemento de ruta o patrón, como *.txt. Se permite el uso de caracteres comodín. El parámetro Exclude solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del directorio C:\Windows.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Filter

Especifica un filtro para calificar el parámetro Path. El proveedor de FileSystem es el único proveedor de PowerShell instalado que admite el uso de filtros. Puede encontrar la sintaxis del lenguaje de filtro de FileSystem en about_Wildcards. Los filtros son más eficaces que otros parámetros, ya que el proveedor los aplica cuando el cmdlet obtiene los objetos en lugar de que PowerShell filtre los objetos después de recuperarlos.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Force

Indica que este cmdlet copia elementos que no se pueden cambiar de otro modo, como copiar en un archivo o alias de solo lectura.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-FromSession

Especifica el PSSession objeto desde el que se copia un archivo remoto. Cuando se usa este parámetro, los parámetros path de y LiteralPath hacen referencia a la ruta de acceso local en el equipo remoto.

Propiedades de parámetro

Tipo:PSSession
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Include

Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet incluye en la operación. El valor de este parámetro define el parámetro Path. Escriba un elemento de ruta o patrón, como "*.txt". Se permite el uso de caracteres comodín. El parámetro Include solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del directorio C:\Windows.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-LiteralPath

Especifica una ruta de acceso a una o varias ubicaciones. El valor de LiteralPath se usa exactamente tal como está escrito. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.

Para obtener más información, consulte sobre_las_normas_de_citación.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:PSPath

Conjuntos de parámetros

LiteralPath
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-PassThru

Devuelve un objeto que representa el elemento con el que está trabajando. De forma predeterminada, este cmdlet no genera ninguna salida.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Path

Especifica, como matriz de cadenas, la ruta de acceso a los elementos que se van a copiar. Se permite el uso de caracteres comodín.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:True
DontShow:False

Conjuntos de parámetros

Path
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Recurse

Indica que este cmdlet realiza una copia recursiva.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ToSession

Especifica el objeto de psSession al que se va a copiar un archivo remoto. Cuando se usa este parámetro, el parámetro Destination hace referencia a la ruta de acceso local en el equipo remoto.

Propiedades de parámetro

Tipo:PSSession
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando una transacción está en curso. Para obtener más información, vea about_Transactions.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:usetx

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-WhatIf

Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

String

Puede enviar una cadena que contenga una ruta de acceso a este cmdlet.

Salidas

None or an object representing the copied item

Cuando se usa el parámetro passThru, este cmdlet devuelve un objeto que representa el elemento copiado. De lo contrario, este cmdlet no genera ninguna salida.

Notas

Este cmdlet está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, escriba Get-PSProvider. Para obtener más información, consulte about_Providers.