Copiar archivos entre equipos remotos Windows mediante consola
Cuando estamos trabajando en el área de sistemas es posible que se nos presente la necesidad de recuperar algún fichero de un equipo remoto, o tal vez copiar una carpeta o documento para un fin determinado.
Existen diferentes formas de copiar un fichero a una máquina remota en Windows utilizando la linea de comandos o CMD. En este artículo veremos 3 maneras en que podremos salir del paso rápidamente.
Básicamente, podemos decir que son los mismos métodos básicos que podemos utilizar si queremos copiar carpetas o archivos entre diferentes directorios de nuestro equipo local: copy, xcopy o robocopy.
Transferir archivos entre equipos remotos usando el CMD o Powershell
Las herramientas descritas a continuación son nativas de Windows y pueden ser ejecutadas tanto desde un CMD (Command Prompt) como de un intérprete Powershell. Escoge el que más te convenga.
Copy
La herramienta de copia básica de Windows lleva con nosotros desde tiempos inmemoriales. Permite transferir ficheros o carpetas entre ubicaciones locales o locales y remotas.
El uso más sencillo de esta herramienta, para copiar archivos entre dos equipos Windows en red, sería algo así.
copy \\ruta\local \\ruta\remota
Y el resultado:
Si queremos algo más elaborado, por ejemplo podemos utilizar la siguiente sintaxis para mapear el recurso compartido y directamente copiar el documento o carpeta en un único comando.
net use \\{equipo-destino}{carpeta-destino} {contraseña} /user:{usuario} copy {archivo} \{equipo-destino}{carpeta-destino}
Puedes ver todas las opciones escribiendo copy /?
Xcopy
El comando xcopy, de forma similar a copy, sirve para copiar archivos o directorios entre ubicaciones locales o remotas de equipos basados en Windows.
Está soportado en todos los sistemas desde Windows 98 a Windows 10, además de estar disponible en MS-DOS. Tiene muchos más modificadores que el anterior comando y por tanto es útil para tareas más complejas.
El uso simple de esta herramienta, continuando con el ejemplo anterior, sería este:
El resultado es el siguiente:
El modificador /K usado en el segundo ejemplo permite que xcopy transfiera los atributos del archivo original.
Te recomiendo revisar todas las opciones que nos ofrece xcopy, que son muchas, usando este en lugar del primer comando si requieres de más potencia. Aunque si lo que quieres es la máxima fiabilidad, es mejor usar la siguiente opción.
Robocopy
Robocopy es la palabra resultante de unir robust y file copy. Si quieres puedes revisar mi anterior tutorial sobre Robocopy en Windows.
Es una utilidad de copia robusta que nos permite un mejor control de los resultados y verificar la integridad de los archivos o carpetas copiadas con más detalle. También permite un número mayor de modificadores que xcopy y copy.
El uso básico es:
ROBOCOPY origen destino [archivo [archivo]…] [opciones]
Siguiendo con el ejemplo propuesto, supongamos que deseamos copiar nuestra carpeta de Descargas local a un equipo remoto con IP 10.241.14.198, situando la misma en la raíz de C:\. Podríamos usar la siguiente sintaxis.
robocopy C:\Users\Alejandro\Downloads\ \10.241.14.198\c$ /TEE /ETA /COPY:DAT /R:3 W:5 /V /MT:16
Progreso de copia Resúmen
En mi ejemplo he usado valores por defecto y no la sintaxis propuesta. ¿Por qué la recomiendo? Veamos el significado:
- R:3 (número de reintentos si se da un error)
- W:5 (tiempo de espera entre reintentos, segundos)
- COPY:DAT (Datos, Atributos, marcas de Tiempo). Por defecto es DA. En caso de querer copiar el directorio Descargas como tal, usaríamos DCOPY:<args>
- TEE: envia resultados a consola y a archivo de registro
- MT:16 (multi-threading al copiar). Por defecto es uni-hilo.
Estos valores podrían venirte bien si deseas hacer un script para automatizarlo. Hay decenas de opciones que puedes consultar escribiendo robocopy /?.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
Muy buena la información.. pero neecsito resolver algo…
Necesito una rutina para copiar archivos desde un equipo a otro en una carpeta específica.
ahora bien.. sería sencillo, pero el problema es que cada día la carpeta origen y destino cambia… es decir… pongo un ejemplo
Necesito copiar los archivos que estan en
\\PC1\DIR1\DIR2\20210102\*.*
a
\\PC2\DIR1\DIR2\20210102\
Si te fijas.. la ultima carpeta cambia cada día…. en ambos equipos….
Como hago copiar los archivos cada día?
Hola Ronald,
No veo que cambie, solo veo un origen y un destino, asumo que donde pone la fecha esta irá siendo diferente cada día que pasa. Tienes dos opciones, al menos:
1. Dependiendo del proceso o programa que realiza dicha modificación, si pudieras, incluir una variable y en el script para que tome ese parámetro
2. Utilizar robocopy con los modificadores apropiados para mantener una copia sincronizada de la carpeta padre/raíz \DIR2\ En mi web tengo un tutorial básico sobre Robocopy que quizá te sirva
Saludos.
buen dia, quiero copiar un archivo de una pc a un directorio de red, hacer esto cada hora o cada dos horas (sobreescribir el archivo viejo y reemplazarlo por el nuevo en caso que sea necesario)
Buenos días el tema es este, puedo acceder mediante psexec a otra pc que esta en la red todo perfecto, al momento de querer copiar un archivo desde esa pc a mi pc me da el error de acceso denegado, 0 archivos copiados.
Intente de varias formas con copy, robocopy, poniendo el numero de ip y también en vez de la ip con el nombre del equipo.
Los comandos los ejecute desde la pc mía y también accediendo por psexec a la otra pc
.
Por favor su ayuda con el codigo suponiendo que el archivo que quiero copiar se encuentre en la otra pc(ventas (192.168.1.2)) en users\public\documents\info2.txt y quiero que se copie a mi pc en c:\users\administrador\documents
Gracias
Javier debiste poner el nombre del archivo al final userspublicdocuments c:usersadministradordocuments info2.txt
Ruben usa /MOT:60 o /MON:3
para copiar y pasar de mi PC ( C:\DATOS\ARCHIVOX.TXT a PC-REMOTO DE OTRO LUGAR LEJANO COMO LO TRANSFIERO ?
HAY QUE USAR IP o COMO IDENTIFICO A LA OTRA COMPUTADORA QUE SERIA OTRA CARPETA ( C:\DATOS\*.* )
Hola, si estás en entorno Windows será mediante nombre Netbios (representado como \\nombre-equipo) o usando su dirección IP como \\DIR.ECC.ION.IP pero podría ser necesario antes realizar alguna configuración en el equipo.
Hola buenos días,
Estoy intentando realizar un .bat que se ejecute para realizar un backup de archivos que se encuentran en una carpeta y de forma diaria en carpeta diferente o nueva, pero la instrucción del comando Xcopy genera errar de reconocimiento:
Como puedo Solucionarlo
Gracias en lo que me puedan ayudar
@echo off
Rem Set FechaHoy =%date:/=-%
set FECHA=%date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
Set Ruta_origen=»C:UsersmadgetechuserDocumentsDocumentos CorporativosOneDrive – TecMadgeTech 4*.*»
Path=»C:UsersmadgetechuserDocumentsDocumentos CorporativosOneDrive – TecArchivos BackupRespaldo BK»
Set Destino=»C:UsersmadgetechuserDocumentsDocumentos CorporativosOneDrive – TecArchivos BackupRespaldo BK
MKDIR %Path%%FECHA%
Set «Origen=%Ruta_origen%»
Set «RDestino=%Destino%%FECHA%»
Echo %Destino%
REM Variable Destino
Pause
Echo %RDestino%
REM Variable RDestino
Pause
echo %Origen%
REM Variable Origen
Pause
XCOPY «Origen» «RDestino» /D /S /Y
Pause