Volver a la página principal
lunes 7 octubre 2024
74

Cómo copiar y mover archivos en PowerShell

Los comandos Copy-Item y Move-Item en PowerShell se utilizan para copiar y mover archivos, carpetas y otros elementos dentro del sistema de archivos. Estos comandos son esenciales para tareas de administración de archivos, automatización y organización de estructuras de directorios en el entorno de PowerShell.

¿Qué son y cómo usar Copy-Item y Move-Item en PowerShell?

  • Copy-Item: Copia archivos y carpetas de una ubicación a otra, manteniendo el archivo original en la ubicación de origen.
  • Move-Item: Mueve archivos y carpetas a una nueva ubicación, eliminando el archivo original del origen y colocándolo en el destino.

Ambos comandos admiten el uso de comodines (*) para trabajar con múltiples archivos y permiten la copia o movimiento entre carpetas locales y remotas (cuando se utiliza PowerShell Remoting).

Sintaxis básica de Copy-Item

Copy-Item -Path <RutaOrigen> -Destination <RutaDestino> [-Recurse] [-Force]
  • -Path: Especifica la ruta del archivo o carpeta de origen.
  • -Destination: Indica la ruta de destino donde se copiará el archivo o carpeta.
  • -Recurse: Copia de manera recursiva el contenido de subcarpetas.
  • -Force: Sobrescribe archivos existentes en la ubicación de destino (si es necesario).

Sintaxis básica de Move-Item

Move-Item -Path <RutaOrigen> -Destination <RutaDestino> [-Force]
  • -Path: Ruta del archivo o carpeta de origen.
  • -Destination: Nueva ubicación del archivo o carpeta.
  • -Force: Mueve el archivo o carpeta incluso si ya existe en la ruta de destino.

Ejemplos de uso de Copy-Item y Move-Item

1. Copiar un archivo a una nueva carpeta

Copy-Item -Path "C:\Users\Usuario\documento.txt" -Destination "C:\Backup\documento.txt"

Este comando copia documento.txt a la carpeta Backup, manteniendo el archivo original en la ubicación de origen.

2. Copiar una carpeta con su contenido de manera recursiva

Copy-Item -Path "C:\Proyecto" -Destination "D:\Respaldo\Proyecto" -Recurse

El parámetro -Recurse copia toda la carpeta Proyecto, incluyendo subcarpetas y archivos, a la ubicación D:\Respaldo.

3. Sobrescribir archivos existentes en la ubicación de destino

Copy-Item -Path "C:\Users\Usuario\config.cfg" -Destination "D:\Configuracion\config.cfg" -Force

El parámetro -Force sobrescribe el archivo config.cfg en la carpeta de destino si ya existe, sin requerir confirmación.

4. Copiar múltiples archivos usando comodines

Copy-Item -Path "C:\Users\Usuario\*.txt" -Destination "D:\Documentos"

Este comando copia todos los archivos .txt desde la carpeta de origen a la carpeta D:\Documentos.

5. Mover un archivo a una nueva ubicación

Move-Item -Path "C:\Users\Usuario\documento.txt" -Destination "C:\Archivos\documento.txt"

Mueve documento.txt de la carpeta Usuario a Archivos. El archivo ya no estará en la carpeta de origen después de la operación.

6. Mover una carpeta completa

Move-Item -Path "C:\Proyectos\Proyecto1" -Destination "D:\Archivos\Proyectos\"

Este comando mueve la carpeta Proyecto1 completa (incluyendo subcarpetas y archivos) a la nueva ruta D:\Archivos\Proyectos\.

7. Renombrar un archivo con Move-Item

Move-Item -Path "C:\Users\Usuario\documento_viejo.txt" -Destination "C:\Users\Usuario\documento_nuevo.txt"

Además de mover archivos, Move-Item también se puede usar para cambiar el nombre de un archivo en la misma ubicación. En este caso, se cambia documento_viejo.txt a documento_nuevo.txt.

8. Mover y sobrescribir archivos de solo lectura

Move-Item -Path "C:\Temp\archivo.txt" -Destination "D:\Data\archivo.txt" -Force

El parámetro -Force permite mover archivos con atributos de solo lectura o de sistema, sobrescribiendo el archivo de destino si ya existe.

9. Mover archivos grandes con seguimiento de progreso

Move-Item -Path "C:\ArchivosGrandes\*.iso" -Destination "D:\Backup" -Force -Verbose

El parámetro -Verbose proporciona información adicional durante el proceso, útil para realizar un seguimiento del movimiento de archivos grandes.

10. Copiar un archivo a un equipo remoto

Copy-Item -Path "C:\Users\Usuario\reporte.csv" -Destination "\\ServidorRemoto\Compartido\reporte.csv"

Copia reporte.csv a un recurso compartido en un servidor remoto (\\ServidorRemoto\Compartido), siempre y cuando se tengan permisos de acceso en el equipo de destino.

Parámetros adicionales y consideraciones

1. Parámetro -Recurse con Copy-Item

El parámetro -Recurse es indispensable cuando se copian carpetas que contienen subcarpetas y archivos. Sin -Recurse, Copy-Item solo copiará la carpeta vacía sin su contenido.

2. Parámetro -Force

Usar -Force es útil cuando se copian o mueven archivos de solo lectura, archivos protegidos o cuando el archivo ya existe en la ubicación de destino. Se debe usar con precaución para evitar sobrescribir archivos importantes accidentalmente.

3. Copia y movimiento de archivos de gran tamaño

Cuando se copian o mueven archivos grandes, se recomienda usar el parámetro -Verbose para ver el progreso, o dividir la operación en partes si se trabaja en sistemas con limitaciones de recursos.

Comandos relacionados

  • Remove-Item: Elimina archivos y carpetas.
Remove-Item -Path "C:\Carpeta\archivo.txt"
  • Test-Path: Verifica si un archivo o carpeta existe en una ruta especificada.
Test-Path -Path "C:\Carpeta\archivo.txt"
  • New-Item: Crea nuevos archivos o carpetas.
New-Item -Path "C:\CarpetaNueva" -ItemType Directory

Referencia oficial

Puedes obtener más detalles sobre Copy-Item y Move-Item en la documentación oficial de Microsoft.

Etiquetas:
powershell
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer