Archivo bat para copiar archivos txt de un directorio de carpetas a una ubicación determinada sin sus directorios.

Necesito copiar todos los archivos de extensión *.txt de una serie de carpetas a una ubicación pero sin sus carpetas correspondientes. Necesito que me copie solo los archivos.

Les agradecía mucho.

1 Respuesta

Respuesta
1

Prueba con algo así:

@echo off
set carpdest=c:\tmp\Nueva carpeta
for /f "tokens=1*" %%a in ('dir /b c:\users\g\documents\*.txt') do copy %%a "%carpdest%\%%a"

En el set de la variable carpdest debes poner la carpeta de destino que te convenga y luego repites el FOR /F para cada carpeta origen. Si no entiendes algo nos lo dices.

Perdón. Hay un error, porque la carpeta origen debe figurar en el origen del COPY. Sería algo así:

@echo off
set carpdest=c:\tmp\Nueva carpeta
for /f "tokens=1*" %%a in ('dir /b c:\users\g\documents\*.txt') do copy c:\users\g\documents\%%a "%carpdest%\%%a"

Buenas. Gracias por la respuesta

Pero me arroja un error " no se esperaba %%a "

Esto es lo que entendí

@echo off
set carpdest=D:\ " esta es la ruta donde quiero que me copie todos los archivos *.txt
for /f "tokens=1*" %%a in ('dir /b c:\I:\"esta es la ruta donde estas las carpetas y subcarpertas que contienen archivos txt*.txt') do copy "esto no lo tengo claro\\%%a "%carpdest%\%%a"

Supongamos que quieres que todos los archivos *.txt de las carpetas:

c:\Mi carpeta\Archivos txt

D:\Otros archivos

d:\varias cosas\archivos txt

Se copien en la carpeta d:\todos txt

El bat a crear sería:

@echo off
set carpdest=d:\todos txt
for /f "tokens=1*" %%a in ('dir /b "c:\Mi carpeta\Archivos txt\*.txt"') do copy "c:\Mi carpeta\Archivos txt\%%a" "%carpdest%\%%a"
for /f "tokens=1*" %%a in ('dir /b "D:\Otros archivos\*.txt"') do copy "D:\Otros archivos\%%a" "%carpdest%\%%a"
for /f "tokens=1*" %%a in ('dir /b "d:\varias cosas archivos\*.txt"') do copy "d:\varias cosas archivos\%%a" "%carpdest%\%%a"

Me acabo de dar cuenta de que no contemplé adecuadamente el caso de que en las carpetas origen hubiera espacios en blanco. Eso obliga a incluirlas entre comillas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas