ARchivos Batch

Iniciado por Enriquesf, 6 Noviembre 2021, 22:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Enriquesf

Hola.
necesito saber como podria borrar una linea especifica de un txt y tambien como buscar una especifica. He probado con el comando for y find pero no me resulta,no se si es que yo lo utilizo mal. Gracias.
les dejo lo que tengo.
Código (bash) [Seleccionar]

echo off
cls
:inicio
cls
color 1
echo                                        __
echo                                      .'  '.
echo                                  _.-'/  I  \
echo                     ,        _.-"  ,|  /  0 `-.
echo                     I\    .-"       `--""-.__.'IIIIIIIIIIIIIIIIIIIIIIIIII
echo                     \ '-'`        .___.--._)IIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo                      \            .'      III                         III
echo                       I    /,_.-'         III     "PATITAS FELICES"   III
echo                     _/   _.'(             III       Hotel Canino      III
echo                    /  ,-' \  \            III                         III
echo                    \  \    `-'            III         Ingresar        III
echo                     `-'                   III          1) SI          III
echo                                           III          2) NO          III
echo                                           III                         III            
echo                                           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII      
echo                                           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII                          
set/p opcion=Ingrese el numero de la opcion que desea realizar:
if %opcion%==1 goto menu
if %opcion%==2 goto inicio
:no
cls
exit
cls
:menu
cls
color 2
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo           III                                         III
echo           III  1. Ingreso de Clientes.                III
echo           III  2. Agendar servicio.                   III
echo           III  3. Lista de clientes.                  III
echo           III  4. Lista de servicios agendados.       III
echo           III  5. Calculo de servicios contratados.   III
echo           III  6. Salir.                              III
echo           III                                         III
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Ingrese el numero de la opcion que desea realizar:
if  %opcion%==1 goto ingresarclientes
if  %opcion%==2 goto agendarservicio
if  %opcion%==3 goto listadeclientes
if  %opcion%==4 goto listadeservicios
if  %opcion%==5 goto calculodeservicios
if  %opcion%==6 goto no
cls
:ingresarclientes
cls
color 4
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III       Ingreso De Nuevo Cliente          III
echo  III                                         III
echo  III                                         III
echo  III                                         III
echo  III 1) Ingresar nuevo cliente.              III
echo  III 2) Volver al menu anterior.             III
echo  III 3) Inicio.                              III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Seleccionesu opcion:
if %opcion%==1 goto nuevocliente
if %opcion%==2 goto menu
if %opcion%==3 goto  inicio
cls
:nuevocliente
cls
color 4
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III          Nuevo Cliente                  III        
echo  III                                         III
echo  III  1) Ingresar Datos/HISTORIAL            III
echo  III  2) volver al menu anterior.            III
echo  III  3) Inicio.                             III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo Ingrese la opcion que desea:
if %opcion%==1 goto datos
if %opcion%==2 goto ingresarclientes
if %opcion%==3 goto inicio
cls
:datos
cls
echo .>>HISTORIAL.txt
echo Ingrese el nombre:
set/p nombre=
echo Ingrese el apellido:
set/p apellido=
echo Ingrese Cedula de Identidad:
set/p cedula=
echo Ingrese la fecha en el siguiente formato dd/mm/aaaa
set/p fecha=
echo Ingrese el nombre de la mascota:
set/p mascota=
echo %nombre% %apellido% %cedula% %fecha% %mascota% >>HISTORIAL.txt
echo Los Datos Se Guardaron Correctamente.
pause>nul
cls
goto :ingresarclientes
:agendarservicio
cls
color 8
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III            Agendar Servicio             III
echo  III                                         III
echo  III                                         III
echo  III 1) Registrar Servicio.                  III
echo  III 2) Servicios Disponibles.               III
echo  III 3) Volver al menu anterior.             III
echo  III 4) Inicio.                              III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Seleccione su opcion:
if %opcion%==1 goto registroservicio
if %opcion%==2 goto servicios
if %opcion%==3 goto menu
if %opcion%==4 goto inicio
cls
:registroservicio
cls
echo .>>REGISTRO.txt
echo Ingrese el nombre del cliente:
set/p nombrec=
echo Ingrese la fecha para realizar el servicio (dd/mm/aaaa)
set/p fechaserv=
echo Ingrese el servicio a realizar:
set/p servicio=
echo %nombrec% %fechaserv% %servicio% >>REGISTRO.txt
echo Los Datos Se Guardaron Correctamente.
pause>nul
cls
goto :agendarservicio
:servicios
cls
echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo III                                                                       III
echo III     Peluqueria                                                        III                                          
echo III       - Recorte sanitario $ 300                                       III
echo III       - Esquila $ 600                                                 III
echo III       - Deslanado $ 500                                               III
echo III       - Limpieza adicional (corte de unas y limpieza de oidos) $150   III
echo III                                                                       III          
echo III     Paseos (de 90 minutos)                                            III
echo III       -Individuales $ 400                                             III
echo III       - Colectivos $ 200                                              III
echo III                                                                       III
echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo En caso de contratar tres servicios de peluqueria se realizara un descuento del 15 por ciento
echo en el precio final y en caso de contratar al menos un servicio de cada rubro(PeluquerIa y paseos)
echo se realizara un descuento de 10 por ciento.
pause
cls
goto :agendarservicio
cls
:listadeclientes
cls
color 9
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III            Lista de Clientes            III
echo  III                                         III
echo  III 1) Clientes.                            III
echo  III 2) Buscar cliente.                      III
echo  III 3) Volver al menu anterior.             III
echo  III 4) Inicio.                              III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Seleccione su opcion:
if %opcion%==1 goto verclientes
if %opcion%==2 goto buscar
if %opcion%==3 goto menu
if %opcion%==4 goto inicio
cls
:verclientes
cls
echo Lista de Clientes:
dir /b *.txt>temp.tst
for /f "usebackq delims=." %%a in (HISTORIAL.txt) do echo %%a
pause > nul
goto listadeclientes
cls
:buscar
?????????????'
???????????
??????????
:listadeservicios
cls
color 5
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III            Servicios Agendados          III
echo  III                                         III
echo  III                                         III
echo  III                                         III
echo  III 1) Lista de Servicios Agendados         III
echo  III 2) Volver al menu anterior.             III
echo  III 3) Inicio.                              III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Seleccione su opcion:
if %opcion%==1 goto listaservicios
if %opcion%==2 goto menu
if %opcion%==3 goto inicio
cls
:listaservicios
cls
cls
echo Servicios Agendados:
for /f "usebackq delims=." %%a in (REGISTRO.txt) do echo %%a
pause > nul
goto agendarservicio
cls
:calculodeservicios
cls
color 3
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo  III                                         III
echo  III          Calculos de Servicios          III
echo  III                                         III
echo  III                                         III
echo  III                                         III
echo  III                                         III
echo  III 1) Volver al menu anterior.             III
echo  III 2) Inicio.                              III
echo  III                                         III
echo  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Seleccione su opcion:
if %opcion%==1 goto menu
if %opcion%==2 goto inicio
cls
pause


EdePC

Saludos,

Para hacer búsqueda de líneas que contengan cierto texto y de acuerdo a ello mostrar solo dicha o dichas líneas, o mostrar todas las líneas que no contengan ese texto se usa FindStr

Archivo nombres.txt
jorge lopez
pedro ramirez
maria flores
jose guzman
alberto torres
ruth magdugal
sofia villanueva
gerardo salaz

Ejemplo para buscar la línea que contenga jose y mostrarla:

Código (dos) [Seleccionar]
FindStr jose nombres.txt

Resultado:
jose guzman

Ejemplo para mostrar todas las líneas que no contengan jose:

Código (dos) [Seleccionar]
FindStr /V jose nombres.txt

Resultado:
jorge lopez
pedro ramirez
maria flores
alberto torres
ruth magdugal
sofia villanueva
gerardo salaz


Puedes consultar la ayuda de FindStr para afinar las búsquedas, por ejemplo palabras que empiecen o que terminen, expresiones regulares, números de línea, etc