Ms-Dos - Eliminar registros por un condición en un archivo txt desde un bat

 
Vista:
sin imagen de perfil

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por CarlosQ (28 intervenciones) el 04/04/2012 15:49:06
Maestros,

por favor como puedo eliminar registros de un archivo TXT que tiene cabecera y sepadado por " ; "
el archivo se llama USMM.TXT y uno de los campos es el campo ESTADO que tiene 3 condiciones, Eliminado, Caducado y Activo,
lo que necesito que el archivo bat elimine todos los registros donde en su campo ESTADO diga caducado y Eliminado, que solo deje los activos.


Saludos y gracias.
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 A.H.H

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por A.H.H (216 intervenciones) el 06/04/2012 21:36:58
Hola el siguiente codigo de ejemplo que te pongo deberia volcar todos los activos que tengas en el fichero USMM.TXT a un fichero de texto llamado activos.txt
Lo hago asi porque si redirecciono la salida del for hacia el archivo USMM.TXT, añade los activos al final del archivo.
Al final del for uso dos >> para redireccionar ,ya que si solo usas un > no te muestra todos los activos en cambio con dos >> si te los redirecciona bien.
Con FINDSTR /I /V "eliminado caducado" lo que hago es buscar las dos palabras en el archivo
y no importa si esta en mayusculas o minusculas, aparte luego con la opcion /V solo sacamos las lineas que no coinciden que en este caso son las que queremos -->activos.
De todas formas solo es un ejemplo que he hecho en xp no se si te sirva PRUEBALO:

1
2
@echo OFF
for /f "tokens=*" %%A in (USMM.TXT) do (ECHO %%A |findstr /I /V "eliminado caducado")>>ACTIVOS.TXT
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 A.H.H

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por A.H.H (216 intervenciones) el 06/04/2012 23:16:57
Hola tambien te servira igual asi, que te queda el USMM.TXT solo con los activos:

1
2
3
4
@echo OFF
for /f "tokens=*" %%A in (USMM.TXT) do (ECHO %%A |findstr /I /V "eliminado caducado")>>ACTIVOS.TXT
COPY ACTIVOS.TXT USMM.TXT
DEL ACTIVOS.TXT
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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por CarlosQ (28 intervenciones) el 10/04/2012 18:18:40
Muchas gracias A.H.H voy hacer las pruebas


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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por CarlosQ (28 intervenciones) el 10/04/2012 19:39:01
A.H.H que significa "tokens"??
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 A.H.H

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por A.H.H (216 intervenciones) el 10/04/2012 19:51:27
Hola CarlosQ, tokens se usa en el for para separar las palabras de una linea de texto en un archivo.
En el for se usa skip= numero de lineas para saltarse desde la primera hacia abajo.
tokens= numero de palabras, si pones asterisco son todas las de la linea.
Delims= caracter delimitador en la linea. por ejemplo punto y coma, barra diagonal etc..
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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por CarlosQ (28 intervenciones) el 11/04/2012 16:47:38
Hola A.H.H gracias

sabes que al ejecutar el bat me deja la ruta en el archivo USMM.txt

elimina todos los registro y me deja eso en el archivo USMM.txt

C:\Fuentes\Extractores\USMM.TXT

este codigo utilice, le puse comillas doble a la ruta,

@echo OFF for /f "tokens=*" %%A in ("C:\Fuentes\Extractores\USMM.TXT") do (ECHO %%A |findstr /I /V "eliminado caducado")>>ACTIVOS.TXT COPY ACTIVOS.TXT USMM.TXT DEL ACTIVOS.TXT
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 A.H.H

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por A.H.H (216 intervenciones) el 11/04/2012 20:22:24
Hola CarlosQ:

No pongas comiilas en el parentesis del for donde pone el nombre del archivo, y te he añadido una linea de codigo al principio para que te el .bat te situe dentro de la carpeta Extractores con el comando CD., Ahora te deberia funcionar,

1
2
3
4
5
@echo OFF
cd "C:\Fuentes\Extractores"
for /f "tokens=*" %%A in (USMM.TXT) do (ECHO %%A |findstr /I /V "eliminado caducado")>>ACTIVOS.TXT
COPY ACTIVOS.TXT USMM.TXT
DEL ACTIVOS.TXT



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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por CarlosQ (28 intervenciones) el 13/04/2012 17:04:09
Muchas Gracias A.H.H me sircio mucho y si me funciono, lo unico que queda la pantalla negra y solo tengo que esperar, al comienzo no sabia si estaba funcionando o no, pero lo deje ejecuntandose durante la noche y hoy ya estaba el archivo limpio,

gracias y que tengas un buen día.

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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por ENRIQUE (8 intervenciones) el 23/10/2013 19:20:51
Hola que tal, yo tengo que hacer almuy parecido pero para varios archivos que estan alojados dentro de una carpeta. estos archivos estan nomenclados con " diamesañoBAJA.TXT" entre otros archivos.
entiendo que me faltaria recorrer todos los archivos e identificar los que necesito procesar.


desde ya muy agradecido por ala ayuda.

saludos cordial!

ENRIQUE
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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por Pedro Bonilla (1 intervención) el 25/07/2022 23:20:16
Buenas tardes, tengo un archivo txt donde me piden editar con una tarea bat ese archivo eliminando los 100 registros mas viejos, podrian apoyarme para saber si es parecido a este bach?
gracias por sui apoyo.
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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por JUAN ANTONIO (1 intervención) el 09/04/2016 19:44:36
Hola:

El fichero .bat que aparece aquí es genial. Casi me lo borda; lo que pasa es que me borra todos los datos de una línea que contiene el símbolo "&" (lo pongo entre comillas pero no las lleva).

Por otra parte, si pongo entre los criterios para borrar "TESORERIA", al haber un salto de línea me borra todos los datos de esa línea (ejemplo: 48006 BILBAO TESORERIA). Entre Bilbao y Tesorería va una flecha que aquí no me deja pegar y que es un salto de línea.

Lo que me interesaría solucionar sería sobre todo el primer caso.

Agradecido.

Saludos, Juan Antonio López
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

Eliminar registros por un condición en un archivo txt desde un bat

Publicado por José Martìnez (1 intervención) el 29/10/2018 22:48:05
Hola, se que esto es de hace mucho tiempo, pero necesito saber, si el filtro que deseo utilizar se encuentra en una columna especifica, como lo puedo especificar?

Ademas no deseo descartar sino seleccionar, use este código, basándome en el de esta solución:


cd "C:\extraer"
for /f "tokens=* delims=," %%A in (Call.csv) do (ECHO %%A |findstr /I "52")>>ACTIVOS.csv

este me funciona el problema es que me trae otras lineas que no deseo, el código que busco esta en la columna 8 "ANI COUNTRY CODE"

y esta es la forma en que vienen los archivos donde se encuentra la información:

DATE,TIME,CALL TYPE,DNIS COUNTRY,DNIS COUNTRY CODE,DNIS,ANI COUNTRY,ANI COUNTRY CODE,ANI,AGENT GROUP,CAMPAIGN,SKILL,Pais de residencia,TALK TIME,CALL TIME,BILL TIME (ROUNDED)
2018/10/10,23:13:22,Inbound,North American Region,1,236650,Colombia,57,0555571,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12
2018/10/10,23:14:57,Inbound,North American Region,1,55500,Colombia,57,01558619687,,Colombia Inbound,[None],,00:00:00,00:00:05,00:00:05
2018/10/10,23:16:31,Inbound,North American Region,1,555564949,Peru,51,0559160488,,NextU Inbound,[None],,00:00:00,00:00:06,00:00:05
2018/10/10,23:18:58,Inbound,North American Region,1,8554040,Honduras,504,01559298631,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12
2018/10/10,23:24:11,Inbound,North American Region,1,85555040,Honduras,504,0555558631,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12
2018/10/10,23:29:07,Inbound,North American Region,1,52555555400,Mexico,52,015555524091670,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12
2018/10/10,23:46:09,Inbound,North American Region,1,5255444440,Mexico,52,0115444444745,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12
2018/10/10,23:46:26,Inbound,North American Region,1,52777777400,Mexico,52,0115444444745,,Colombia Inbound,[None],,00:00:00,00:00:09,00:00:12


Grcias
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