Elemento de copia de PowerShell: copiar archivos a otra ubicación
El cmdlet Copy-Item en PowerShell copia el archivo de una ubicación a otra. Copia archivos y directorios en el sistema de archivos y claves y entradas de registro en la unidad de registro.
PowerShell Copy-Item no elimina ni corta los elementos mientras los copia a otra ubicación. Puede utilizar Copy-Item para copiar archivos a una computadora remota.
En este artículo, analizaremos cómo copiar archivos a otra ubicación utilizando el cmdlet Copy-Item de PowerShell.
Elemento de copia de PowerShell
Copy-Item copia los archivos desde el origen al destino.
Sintaxis
Copy-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Container]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-FromSession <PSSession>]
[-ToSession <PSSession>]
[<CommonParameters>]
Parámetros
-Path: especifica una ruta a los elementos a copiar. Se permiten matrices de cadenas y caracteres comodín.
-Destino: especifica la ruta a la otra ubicación donde se copiarán los archivos. El destino predeterminado es el directorio actual.
-Recurse: especifica copiar archivos de forma recursiva desde el directorio y los subdirectorios.
-Filter: especifique un filtro para calificar el parámetro Path.
Copie archivos en PowerShell usando Copiar elemento
Utilice el cmdlet Copy-Item de PowerShell para copiar el archivo desde la ubicación de origen a la ubicación de destino.
Consideremos que tienes un archivo en el directorio D:\PS\ y quieres copiarlo a otra ubicación D:\PS\Config
Copy-Item -Path D:\PS\calc.txt -Destination D:\PS\Config\En el script de PowerShell anterior. Copy-Item utiliza el parámetro Path para especificar la ubicación de origen del elemento de archivo que se va a copiar.
Copy-Item utiliza el parámetro Destino para especificar la ruta de ubicación a la que se copiará el elemento del archivo.
Copiará el archivo a la ubicación de destino.
Tenga en cuenta aquí que hemos especificado la ruta de destino sin un nombre de archivo, por lo tanto, el archivo se copiará con el nombre del archivo de origen.
Puede cambiar el nombre del archivo mientras lo copia al Destino proporcionando el nombre del archivo en la ruta.
El siguiente script de PowerShell copia el archivo en la ubicación de destino con un nuevo nombre para el archivo con la ruta de destino.
Copy-Item -Path D:\PS\calc.txt -Destination D:\PS\Config\Calculation_R1.txtCopie el contenido de la carpeta de forma recursiva al destino
Con el cmdlet Copy-Item de PowerShell, copia el contenido de la carpeta de forma recursiva desde la ubicación de origen a la ubicación de destino.
Consideremos un ejemplo para copiar el contenido del directorio D:\PS\Config a la ubicación de destino D:\PS\Config-Backup
Copy-Item utiliza el parámetro Path para especificar la ubicación de origen y el parámetro Destination para otra ruta de directorio existente.
Copia todos los archivos del directorio de origen de forma recursiva a la carpeta de destino.
Copy-Item -Path D:\PS\Config\* -Destination D:\PS\Config-Backup -Recurse En el script de PowerShell anterior, Copy-Item utiliza el parámetro Recurse para copiar subdirectorios y archivos desde la ubicación de origen a otra ubicación.
Tenga en cuenta aquí que no copia el directorio de origen, en nuestro ejemplo Config.
PowerShell Copiar carpetas y archivos de forma recursiva
Para copiar la carpeta de origen, los archivos y las subcarpetas de forma recursiva a la ubicación de destino, use el cmdlet Copy-Item de PowerShell.
Consideremos un ejemplo, para copiar el contenido del directorio D:\PS\Config a otra ubicación D:\PS\Config-Backup de forma recursiva.
En el siguiente script de PowerShell, Copy-Item utiliza los parámetros Path y Destination para especificar el directorio de origen y de destino respectivamente.
Utiliza el parámetro Recurse para copiar la carpeta y los archivos de forma recursiva a otra ubicación.
Copy-Item -Path D:\PS\Config -Destination D:\PS\Config-Backup -Recurse El resultado del script de PowerShell anterior para copiar el contenido del directorio a otras ubicaciones copia la carpeta D:\PS\Config y sus archivos a la ubicación D:\PS\Config-Backup
Copiar archivos a una computadora remota
Para copiar archivos de la computadora local a una computadora remota, cree una sesión con el nombre y las credenciales de la computadora remota.
El cmdlet Copy-Item tiene un parámetro ToSession para especificar el nombre de la sesión.
Consideremos un ejemplo, para copiar archivos a una computadora remota llamada INCORP-EU-117.
Cree una sesión con la computadora remota INCORP-EU-117 con las credenciales de ShellGeek\Admin y almacene los resultados en la variable $session.
Utilice el comando Copiar elemento para copiar archivos a una computadora remota usando el parámetro ToSession y la ruta del directorio de origen y destino.
# Create a session with remote computer using New-Session
$Session = New-PSSession -ComputerName "INCORP-EU-117" -Credential "ShellGeek\Admin"
# Use Copy-Item to copy files to a remote computer
Copy-Item "D:\PS\Config\" -Destination "C:\Config-BackUp\" -ToSession $session -Recurse
En el script de PowerShell anterior, el cmdlet Copy-Item copia el contenido del archivo desde la ubicación de origen a la computadora remota de forma recursiva.
Copia subcarpetas con su estructura de archivos a una computadora remota.
Consejo interesante: ¡Cómo copiar archivos de Windows a Linux en PowerShell!
Copie carpetas y archivos de la computadora remota a la computadora local
Para copiar carpetas y archivos de una computadora remota a la carpeta local, usando el cmdlet Copy-Item, cree una sesión con la computadora remota y use el parámetro FromSession en el Copy-Item comando.
Consideremos un ejemplo para copiar el directorio y los archivos desde una computadora remota llamada INCORPP-EU-117.
Cree una sesión usando el cmdlet New-Session con una computadora remota INCORP-EU-117 con las credenciales ShellGeek\Admin y almacene los resultados en el Variable
Utilice el cmdlet Copy-Item, utiliza la ruta de la computadora remota y la ruta de la computadora local.
Utiliza el parámetro FromSession para especificar la sesión creada con una computadora remota.
# Create a session with remote computer using New-Session
$Session = New-PSSession -ComputerName "INCORP-EU-117" -Credential "ShellGeek\Admin"
# Use Copy-Item to copy files to a remote computer
Copy-Item "C:\Log\Config-Backup" -Destination "D:\PS\Config" -FromSession $session -RecurseEn el script de PowerShell anterior, el cmdlet Copy-Item copia el directorio completo y sus archivos desde una computadora remota a la computadora local.
Usar filtro para copiar archivos
El cmdlet Copy-Item de PowerShell tiene un parámetro Include para filtrar los elementos que se copiarán en otra ubicación.
Consideremos un ejemplo, la carpeta D:\PS\Config contiene los archivos que se indican a continuación:
- D:\PS\Config\app-1.ps1
- D:\PS\Config\app-1.config
- D:\PS\Config\app-2.config
- D:\PS\Config\app-3.config
- D:\PS\Config\Get-PI.ps1
Para copiar los archivos que comienzan con el nombre aplicación y deben copiarse a otra ubicación, use el cmdlet Copy-Item con el parámetro Include.
# Copy the files that start with name app*
Copy-Item -Path D:\PS\Config\* -Destination D:\PS\Config-Backup -Include app*
# Get the directory content
Get-ChildItem -Path D:\PS\Config-Backup\* En el script de PowerShell anterior, el cmdlet Copy-Item usa el parámetro Path para especificar la ubicación de origen y el parámetro Destino para especificar otra ruta de ubicación.
Copy-Item tiene un parámetro Incluir donde filtra el nombre del archivo que comienza con una aplicación*
Copia archivos con el nombre del archivo que comienza con una aplicación* a la ruta de destino.
El resultado del PowerShell anterior para usar el filtro para copiar archivos es:
Consejo interesante: ¡Cómo copiar archivos más recientes que la fecha en PowerShell!
Conclusión
Espero que el artículo anterior sobre cómo usar el cmdlet Copy-Item en PowerShell para copiar archivos a la ubicación de destino le resulte útil.
Puede encontrar más temas sobre los comandos de PowerShell Active Directory y los conceptos básicos de PowerShell en la página de inicio de ShellGeek.
