Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Enriquesf en 23 Octubre 2021, 17:10 pm



Título: ARchivos Batch
Publicado por: Enriquesf en 23 Octubre 2021, 17:10 pm
buenas,soy nuevo en el blog.
una consulta,tengo que crear un archivo batch que me guarde datos de un cliente,por ejemplo su documento. Tambien que un archivo se guarden los datos de este cliente,por ejemplo su nombre o direccion,etc. Luego mediante alguna manera.poder buscar los datos de este cliente mediante su documento o mediante la fecha en que se contrato el servicio (esto me mostraria los clientes que econtrataron el servicio en esta fecha) . muchas gracias


Título: Re: ARchivos Batch
Publicado por: simorg en 23 Octubre 2021, 17:28 pm
Hola, esto no es un Blog, esto es un Foro, y no se hacen tareas.

Postea lo que tengas codeado y si tienes alguna dificultad te ayudaran.




Saludos.


Título: Re: ARchivos Batch
Publicado por: Enriquesf en 23 Octubre 2021, 17:34 pm
Hola amigo. Te referis a que postee lo que tengo hecho hasta el momento?
Es esto:
Código
  1. echo off
  2. cls
  3. :inicio
  4. cls
  5. color 1
  6. echo           IIIIIIIIIIIIIIIIIIIIIIIIIIII
  7. echo           III                      III                
  8. echo           III   "PATITAS FELICES"  III
  9. echo           III     Hotel Canino     III
  10. echo           III                      III
  11. echo           III       Ingresar       III
  12. echo           III      Si  o   No      III
  13. echo           III                      III
  14. echo           IIIIIIIIIIIIIIIIIIIIIIIIIIII
  15. set/p opcion=Ingrese una opcion:
  16. if %opcion%==No goto inicio
  17. if %opcion%==Si goto si
  18. cls
  19. :si
  20. cls
  21. color 3
  22. echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  23. echo           III                                         III
  24. echo           III  1. Ingreso de Clientes.                III
  25. echo           III  2. Agendar servicio.                   III
  26. echo           III  3. Lista de clientes.                  III
  27. echo           III  4. Lista de servicios agendados.       III
  28. echo           III  5. Calculo de servicios contratados.   III
  29. echo           III  6. Salir.                              III
  30. echo           III                                         III
  31. echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
  32. set/p opcion=Ingrese el numero de la opcion que desea realizar:
  33. if  %opcion%==1 goto ingresarclientes
  34. if  %opcion%==2 goto agendarservicio
  35. if  %opcion%==3 goto listadeclientes
  36. if  %opcion%==4 goto listadeservicios
  37. if  %opcion%==5 goto calculodeservicios
  38. if  %opcion%==6 goto inicio
  39. cls
  40. :ingresarclientes
  41. cls
  42. color 4
  43. echo Aqui podra ingresar un nuevo cliente.
  44. set/p opcion=1 para volver al menu anterior 2 para salir
  45. if %opcion%==1 goto si
  46. if %opcion%==2 goto inicio
  47. cls
  48. :agendarservicio
  49. cls
  50. color 7
  51. echo Aqui podra agendar un servicio.
  52. cls
  53. :listadeclientes
  54. cls
  55. color 4
  56. echo Aqui esta la lista de clientes.
  57. cls
  58. :listadeservicios
  59. cls
  60. color 7
  61. echo Aqui esta la lista de servicios agendados.
  62. cls
  63. :calculodeservicios
  64. cls
  65. color 4
  66. echo Aqui estan los calculos de los servicios contratados.
  67. cls
  68. pause

MOD: Etiqueta GeSHi


Título: Re: ARchivos Batch
Publicado por: **Aincrad** en 24 Octubre 2021, 00:44 am
alv, solo tienes el menú y esperas que te hagamos ayudemos con todo lo demás ?



Bueno, ya enserio, batch no te va a servir, a no ser que uses alguna que otra herramienta comandline .

Lo que se me ocurre es que guardes los datos en un .ini , o con algún tipo de delimitador para poder serializar los datos. Tendrías los registros de los usuarios en puros documentos de texto... .txt básicamente.

Para buscar, seria un dolor de cabeza, no solo seria lento, también ineficiente.

Solo te recomiendo que no lo hagas en batch.





Título: Re: ARchivos Batch
Publicado por: EdePC en 24 Octubre 2021, 02:46 am
Básicamente el truco está es como guardar los datos, normalmente se usa un separador de datos como ; (línea 6)

Código
  1. Rem Datos de Cliente
  2. Set "id=0"
  3. Set "nombre=pepe"
  4.  
  5. Rem Guardar datos del Cliente
  6. Echo %id%;%nombre% >> clientes.txt
  7.  
  8. Rem Buscar Cliente por id
  9. Set "id=0"
  10. For /F "tokens=1,2 delims=;" %%a In ('FindStr /B %id% clientes.txt') Do (
  11.  Echo ID: %%a
  12.  Echo Nombre: %%b
  13. )

Luego la búsqueda de datos se hace por un campo Identificador, no más eficiente sería usar FindStr (línea 10), pero si el ejercicio lo pide también se puede implementar un Bucle que recorra línea a línea. Claro que se tiene que usar Tokens para preparar la línea obtenida (línea 10) en el ejemplo se busca por ID y de la línea hallada se tomas los Tokens 1 y 2 donde el separador de Tokens es el Deliminator ;, a cada Token le corresponde un consecutivo de la variable utilizada, en mi ejemplo usé %%a así que ese es el Token 1 y el 2 sería %%b (líneas 11 y 12)

Ya solo resta hacer algo muy similar para tus Servicios, y si se requiere validación de datos existentes de igual manera te sirve FindStr o un Bucle línea a línea