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 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
$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
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
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
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.