Ms-Dos - ¿Es posible un BAT para buscar y copiar archivos?

 
Vista:

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Pablo (1 intervención) el 23/08/2011 17:35:31
¿Es posible crear un BAT que me busque unos archivos sin extensión y de más de 100 Kb que tengo en un CD (lleno de directorios y subdirectorios) y que esos archivos se copien en una única carpeta de mi disco C?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Antoni Masana (811 intervenciones) el 24/08/2011 06:32:35
Si es posible dentro de lo razonable. Seria algo asi

1
2
3
4
5
6
@ECHO OFF
DIR D:\*.* /S /B >%tmp%\tmp-1.txt
FIND /i "texto" %tmp%\tmp-1.txt >%tmp%\tmp-2.txt
FOR /F %%a IN ( %tmp%\tmp-2.txt ) DO COPY %%a C:\Carpeta\.
DEL %tmp%\tmp-1.txt
DEL %tmp%\tmp-2.txt


Esto tiene sus limitaciones.
- No funciona si el nombre de la carpeta o del fichero origen tiene espacios.
- Si hay dos origenes con el mismo nombre de fichero solo crea un destino.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Norberto Aldavero Izquierdo (1 intervención) el 22/03/2017 12:07:38
Hola,
el procedimiento funciona perfecto, solo añadir que se pueden copiar aunque contengan espacios en blanco utilizando el parámetro "tokens=*" y luego en el xcopy añadir las " a la variable de entorno.

ejemplo. for /f "tokens=*" %%a in (%tmp%\archivospdf.txt) do xcopy "%%a" "r:\directorio destino"

un saludo
Norberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Franklin (2 intervenciones) el 07/03/2018 23:09:47
Buenas tardes,

Estoy utilizando este mismo código, pero solo quiero que me busque en la ruta que especifico, ya que cuando lo ejecuto me busca en todas las carpetas y subcarpetas que contienen dicha palabra. O bien podría ser que solo me busque archivos donde ejecuto el bat. Agradezco su ayuda.

1
2
3
4
5
6
7
8
@echo off
DIR C:\Users\frank\Documents\Pruea01\*.* /S /B >%tmp%\tmp-1.txt
FIND /i "prueba" %tmp%\tmp-1.txt >%tmp%\tmp-2.txt
FOR /F "tokens=*" %%a in ( %tmp%\tmp-2.txt ) do copy "%%a" "D:\Consilacion_de_procesos 0.9 %%\Marzo_2018"
DEL %tmp%\tmp-1.txt
DEL %tmp%\tmp-2.txt
pause
exit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Antoni Masana (811 intervenciones) el 08/03/2018 14:55:58
Si no quieres que busque en las subcarpetas quita el /S del dir

1
2
3
4
5
6
7
8
@echo off
DIR C:\Users\frank\Documents\Pruea01\*.*    /B >%tmp%\tmp-1.txt
FIND /i "prueba" %tmp%\tmp-1.txt >%tmp%\tmp-2.txt
FOR /F "tokens=*" %%a in ( %tmp%\tmp-2.txt ) do copy "%%a" "D:\Consilacion_de_procesos 0.9 %%\Marzo_2018"
DEL %tmp%\tmp-1.txt
DEL %tmp%\tmp-2.txt
pause
exit

Y siquieres que solo funcione en la carpeta que lo ejecutas quita la ruta del DIR

1
2
3
4
5
6
7
8
@echo off
DIR *.* /B >%tmp%\tmp-1.txt
FIND /i "prueba" %tmp%\tmp-1.txt >%tmp%\tmp-2.txt
FOR /F "tokens=*" %%a in ( %tmp%\tmp-2.txt ) do copy "%%a" "D:\Consilacion_de_procesos 0.9 %%\Marzo_2018"
DEL %tmp%\tmp-1.txt
DEL %tmp%\tmp-2.txt
pause
exit

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

¿Es posible un BAT para buscar y copiar archivos?

Publicado por Antoni Masana (811 intervenciones) el 19/06/2018 12:22:49
Buen dia sr. Antoni

Por favor de su ayuda para un BAT que desde un archivo que tiene una lista de numeros de cedulas
busque archivos que con tenga esos numeros de cedula y los copie o mueva a otraa carpeta.

tengo este codigo y funciona perfecto para buscar solo una palabra.
d:
pause
cd\Origen
pause
findstr /s /m "4211111111" *.edi > listado.log
pause
for /f %%1 in (listado.log) do move "%%1" D:\Destino\%%1
pause

-----------------
Me gustaría crear una lista con varias palabras en columna en ese caso numeros de cedulas
y si estan en esa lista que me mueva los archivos que la contengan.

Mil gracias estare atento a sus comentarios


Versión Simple: creas un fichero en C:\Tmp\Origen.txt con la lista de cedulas a buscar

1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set Orig=C:\Tmp\Origen.txt
set Temp=C:\Tmp\Listado.txt
 
type nul %Temp%
D:
CD \Origen
 
FOR /F %%a in (%Orig%) do findstr /s /m "%%a" *.edi >>%Temp%
FOR /F %%a in (%Temp%) do move "%%a" D:\Destino\%%a
del %Temp%
 
pause


Versión más complejo: El mismo BAT te permite entrar las cedulas a buscar en el fichero en C:\Tmp\Origen.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
set Cant=0
set Orig=C:\Tmp\Origen.txt
set Temp=C:\Tmp\Listado.txt
 
type nul %Orig%
type nul %Temp%
 
:Sig
   SET Cedula=Numero de cedula a buscar:
   if "%Cedula% == "" if Cant EQU 0 Goto:EOF
   if "%Cedula% == ""               Goto Fin
   set /A Cant+=1
   echo %Cedula%>>%Orig%
   goto Sig

:Fin 
   D:
   CD \Origen

   FOR /F %%a in (%Orig%) do findstr /s /m "%%a" *.edi >>%Temp%
   FOR /F %%a in (%Temp%) do move "%%a" D:\Destino\%%a
   del %Temp%

pause

Si no entras ninguna cedula no realiza la búsquera.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar