Powershell proporciona un cmdlet de Copy-Item para copiar un artículo de un lugar a otro. Este elemento puede ser un archivo, una carpeta o un directorio. Copy-Item cmdlet proporciona diferentes características y opciones como sobreescribir, filtrar, excluir, verboso, progreso, etc. En este tutorial, aprenderemos estas características mediante ejemplos.
Contenido
Copiar archivo a un directorio específico
Empezaremos con un simple ejemplo donde copiaremos un archivo dado al directorio especificado. Usaremos sólo proporcionar los nombres de los archivos de origen y destino con sus rutas.
PS> Copy-Item .config.sys test.sys
También podemos usar la opción -Destino para especificar el destino como se indica a continuación.
PS> Copy-Item .config.sys -Destination test.sys
Copy File To Specified Directory
Copiar el directorio al directorio especificado de forma recursiva
También podemos copiar el directorio y su contenido al directorio especificado o de destino usando la opción -Recuperar. La opción Recurse copiará todos los subficheros y carpetas del directorio de origen dado al directorio de destino.
PS> Copy-Item .PerfLogs PerfBack -Recurse
Copiar archivo al servidor remoto
Copy-Item es un comando muy útil en el que podemos usar copiar archivos y carpetas locales a los servidores remotos que soportan PS Remoting. En este ejemplo, especificaremos el nombre del servidor remoto o del ordenador con la opción -ComputerName. Podemos usar el nombre del ordenador o la dirección IP para esto. En este ejemplo, copiaremos al servidor remoto con la dirección IP 192.168.1.10
PS> Copy-Item .PerfLogs PerfBack -ComputerName 192.168.1.10
Copiar el directorio al servidor remoto
También podemos copiar carpetas y directorios locales al servidor o sistema remoto. También usaremos las opciones de -ComputerName como en el ejemplo anterior. También proveeremos la opción -Recurso para copiar subcarpetas y directorios.
PS> Copy-Item .PerfLogs PerfBack -Recurse -ComputerName 192.168.1.10
Copiar archivo del servidor remoto al servidor local
También podemos copiar los archivos remotos del servidor remoto al sistema local. Crearemos una sesión con el sistema remoto con el cmdlet New-PSSession y usaremos esta sesión con la opción -ToSession. En este ejemplo, copiaremos desde un servidor llamado DC1.
$Sessions=New-PSSession -ComputerName "DC1" -Credential "Poftutismail"PS> Copy-Item "C:test.txt" "D:test.txt" -ToSession $Sessions
Copiar el directorio del servidor remoto al local
También podemos copiar directorios de servidores remotos recursivamente al sistema local. Usaremos un comando muy similar al del ejemplo anterior. Sólo proporcionaremos la opción -Recurrir.
$Sessions=New-PSSession -ComputerName "DC1" -Credential "Poftutismail"PS> Copy-Item "C:PerfLogs" "D:PerfLogs" -Recurse -ToSession $Sessions
Sobrescribir a los archivos
Si hay el mismo archivo o carpeta en el destino no se copiará. Si queremos copiar incluso si existe un archivo o carpeta de destino tenemos que forzarlo con la opción de sobreescribir. Usaremos la opción -Forzar para sobrescribir.
PS> Copy-Item .config.sys test.sys -Force
Filtrar los archivos según el nombre
Mientras copiamos archivos y carpetas podemos filtrarlos. Si no queremos copiar el nombre de archivo especificado.
Filtrar los archivos según la extensión
Podemos filtrar los archivos copiados según sus extensiones. También usaremos las opciones -Excluir o -Incluir y proporcionaremos la extensión como .txt , .sql etc. En este ejemplo, filtraremos y sólo copiaremos archivos txt.
PS> Copy-Item .config.sys test.sys -Incluye "*.txt"
Excluir archivos dados
También podemos excluir los archivos especificados con la opción -Excluir. Proporcionaremos alguna parte del nombre del archivo. En este ejemplo excluiremos los nombres de archivo que empiecen por Sql.
PS> Copy-Item .config.sys test.sys -Excluir "Sql*"
Operación de Copia Verbosa
Durante la operación de copiado, es posible que necesitemos más información sobre la operación. Podemos imprimir en modo verborreico la operación de copia con la opción -Verborreico.
PS> Copy-Item .PerfLogs PerfBack -Recurse -Verbose
Verbose Copy Operation