Ms-Dos - Ms-Dos - Buscar registros dentro de un txt

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 2 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Ms-Dos - Buscar registros dentro de un txt

Publicado por Frank (5 intervenciones) el 11/04/2018 15:02:28
Estimados buenos días, alguien me puede ayudar con el código para realizar la lectura de un archivo1.txt que contiene varios registros y consultarlos dentro un archivo2.txt que contiene la mayaría de registros del primer archivo1 pero con datos adicionales. Si los registros fueron encontrados entonces se genera un archivo resultado.txt con los datos completos y si los registros no fueron encontrados se genera un archivo noencontrados.txt

Ejemplo:
archivo1.txt

123456
456789
123456789
987654

archivo2.txt
9632@-1
[email protected]
[email protected]
456789@-1
[email protected]
[email protected]


resultado.txt
[email protected]
456789@-1
[email protected]

noencontrados.txt
987654

La verdad es que no conozco mucho de ms-dos pero buscando en los foros he podido encontrar el siguiente codigo que realiza parte de lo que necesito, pero éste solo me permite consultar un registro a la vez y tampoco me arroja los registros no encontrados.


1
2
3
@echo off
set /P codi=Codigo cliente:
IF NOT "%codi%" == "" FINDSTR "%codi%" archivo2.txt>resultado.txt

De antemano les agradezco por su ayuda.
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

Ms-Dos - Buscar registros dentro de un txt

Publicado por Antoni Masana (811 intervenciones) el 12/04/2018 05:42:45
El Bat

1
2
3
4
5
6
7
@echo off
for /F %%a in (archivo1.txt) do call :Busca %%a
goto :Eof
:Busca
   Findstr %1 Archivo2.txt >>resultado.txt 2>nul
   IF %ErrorLevel% EQU 1 echo %1>>noencontrado.txt
   goto :Eof

No esta probado.

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
sin imagen de perfil
Val: 16
Ha aumentado su posición en 2 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Ms-Dos - Buscar registros dentro de un txt

Publicado por Frank (5 intervenciones) el 12/04/2018 19:58:16
Estimado Antoni, te agradezco infinitamente por tu ayuda, es justamente lo que necesito. Por ultimo existe alguna forma de hacer que el resultado sea mas preciso.

Por ejemplo:
en el archivo1.txt tengo el siguiente registro:

123456

Y en el archivo2.txt los siguientes registros:
123456@ims
123456456@-1
7899123456@dominio.com

En el archivo resultado.txt me aparecen todos los registros del archivo2.txt "Ya que el valor buscado es parte de todos los registros"
123456@ims
123456456@-1
7899123456@dominio.com

Existe la forma de obtener solo el resultado del registro buscado.

De antemano te agradezco nuevamente por tu ayuda.
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

Ms-Dos - Buscar registros dentro de un txt

Publicado por Antoni Masana (811 intervenciones) el 13/04/2018 14:53:58
Opcion 1

1
2
3
4
5
6
7
@echo off
for /F %%a in (archivo1.txt) do call :Busca %%a
goto :Eof
:Busca
   Findstr /R ^%1@ Archivo2.txt >>resultado.txt 2>nul
   IF %ErrorLevel% EQU 1 echo %1>>noencontrado.txt
   goto :Eof

Opcion 2

1
2
3
4
5
6
7
@echo off
for /F %%a in (archivo1.txt) do call :Busca %%a
goto :Eof
:Busca
   Findstr /B %1@ Archivo2.txt >>resultado.txt 2>nul
   IF %ErrorLevel% EQU 1 echo %1>>noencontrado.txt
   goto :Eof

No esta probado.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 2 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Ms-Dos - Buscar registros dentro de un txt

Publicado por Frank (5 intervenciones) el 16/04/2018 21:23:49
Estimado Antoni, muchas gracias por tu ayuda, la segunda opción funciona de maravilla!! Saludos
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
Val: 16
Ha aumentado su posición en 2 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Ms-Dos - Buscar registros dentro de un txt

Publicado por Frank (5 intervenciones) el 04/05/2018 17:51:01
Estimado Antoni, molesto nuevamente tu ayuda:
Si dentro del archivo1.txt existe un registro en blanco, se puede ver de la misma forma en el archivo resultado.txt ?

Por ejemplo:
en el archivo1.txt tengo los siguientes registros:
123456
456789

123456789
987654

archivo2.txt
9632@-1
[email protected]
[email protected]
456789@-1
[email protected]
[email protected]


En el archivo resultado.txt también aparece el registro en blanco
[email protected]
456789@-1

[email protected]
987654 no encontrado


De antemano te agradezco nuevamente por tu ayuda.
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

Ms-Dos - Buscar registros dentro de un txt

Publicado por Antoni Masana (811 intervenciones) el 05/05/2018 10:35:09
Si buscas un texto determinado solo te muestra los registros que contengan ese texto y los registros en blanco no lo contienen.

Si quieres buscar los registros en blanco puedes usar esto:

1
Findstr /R "^$" Text1

Las dos cosas en la misma búsqueda no veo que e pueda hacer.

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