Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: brianchatran en 6 Octubre 2018, 21:47 pm



Título: modificar texto en batch
Publicado por: brianchatran en 6 Octubre 2018, 21:47 pm
Hola tengo una duda de como modificar una linea especifica de un txt en batch manteniendo el resto de la información intacta, no encuentro forma de poder hacerlo y que la linea de código para eso no me ocupe mucho.

ejemplo :yo quiero que la persona solo modifique el teléfono y que la otra información quede intacta .

Código:
nombre:juan
apellido:perez
CI:53529378
direccion:ejemplo
turno:noche
telefono:095423423
materias que cursa:programacion

Desde ya muchas gracias


Título: Re: modificar texto
Publicado por: **Aincrad** en 6 Octubre 2018, 22:16 pm
1) NO ESPECIFICAS QUE LENGUAJE. Y POR COMO TE EXPRESAS SUPONGO QUE NO POSES CONOCIMIENTO DE NINGUNO . AQUÍ NO AYUDAMOS ASÍ.

Intenta  crear tu propio script y en caso de que tengas algún error, con mucho gusto te ayudo.



A como te expresas, la respuesta que te daría es que :

1) agarres el txt , click derecho >> Editar .

2) Modificas el texto.

3) Y lo guardas.

Esa seria la Solución que le daría a alguien como tu.


Título: Re: modificar texto
Publicado por: brianchatran en 6 Octubre 2018, 22:35 pm
1) NO ESPECIFICAS QUE LENGUAJE. Y POR COMO TE EXPRESAS SUPONGO QUE NO POSES CONOCIMIENTO DE NINGUNO . AQUÍ NO AYUDAMOS ASÍ.

Intenta  crear tu propio script y en caso de que tengas algún error, con mucho gusto te ayudo.



A como te expresas, la respuesta que te daría es que :

1) agarres el txt , click derecho >> Editar .

2) Modificas el texto.

3) Y lo guardas.

Esa seria la Solución que le daría a alguien como tu.

perdón por no especificarme ,busco una forma de hacerlo dentro de un batch ya que tengo todo hecho dentro el  programa pero la parte de editar texto no logro saber la forma de hacerlo . perdón nuevamente


Título: Re: modificar texto en batch
Publicado por: **Aincrad** en 7 Octubre 2018, 04:43 am
Código
  1. @echo off
  2. goto main
  3.  
  4. :error
  5. echo archivo no existe.
  6. pause
  7. goto main
  8.  
  9.  
  10. :Main
  11. cls
  12. set /p file=Indique el nombre del archivo:
  13. if not exist %file% goto error
  14. set string=telefono
  15. echo.
  16. setlocal enabledelayedexpansion
  17. set /a nchar=0
  18. call:Contar
  19. set /a nlin=0
  20. For /f "useback tokens=*" %%F in ("%file%") do (
  21.     set /a nlin+=1
  22.     set "line=%%F"
  23.     set /a xcont=0
  24.     call:Comparar
  25. )
  26. echo. & echo Terminado. & pause>nul & goto Main
  27.  
  28. :Contar
  29. If /i "!string:~%nchar%,1!" == "" goto:eof
  30. set /a nchar+=1
  31. goto Contar
  32.  
  33. :Comparar
  34. If /i "!line:~%xcont%,%nchar%!" == "%string%" (
  35.     set mtch=T
  36.     call:Msj
  37. )
  38. If /i "!line:~%xcont%,%nchar%!" == "" (
  39.     set mtch=F
  40.     call:Msj
  41.     goto:eof
  42. )
  43. set /a xcont+=1
  44. goto Comparar
  45.  
  46. :Msj
  47. If "%mtch%" == "T" (
  48.     cls
  49.     color a
  50.     echo Telefono encontrado:  [%line%] & echo.
  51.     call :Continue
  52. )
  53. If "%mtch%" == "F" echo LINEA %nlin%: %line%
  54. goto:eof
  55. exit
  56.  
  57. :Continue
  58. set /p numero=introduzca El nuevo Numero :
  59.     Call :TEXTMAN RL %nlin% "%file%" "Telefono : %numero%"
  60.     pause
  61.     exit
  62.  
  63. :TEXTMAN
  64. (SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Invalid parameter & Exit /B 1)) & (GOTO:EOF)
  65. :RL
  66. (For /F "tokens=1* delims=]" %%A in ('type "%~3" ^| find /n /v ""') DO (Call Set /A "LINE+=1" && (CMD /C "IF NOT "%%LINE%%" EQU "%~2" (if "%%B" EQU "" (Echo+>> "%~3.NEW") ELSE ((Echo %%B)>> "%~3.NEW")) ELSE ((Echo %~4)>> "%~3.NEW")"))) && (CALL :RENAMER "%~3") & (GOTO:EOF)
  67. :RENAMER
  68. (REN "%~1" "%~nx1.BAK") & (MOVE /Y "%~1.BAK" "%TEMP%\" >NUL) & (REN "%~1.NEW" "%~nx1") & (GOTO:EOF)


Bueno lo q hace el Code es Buscar la primera linea que tenga la palabra Teléfono y la cambia por el nuevo q tu introduzcas



Código sacado del aporte del compañero  @Elektro : [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto (https://foro.elhacker.net/scripting/batch_aporte_rutina_textman_para_manipular_archivos_de_texto-t372497.0.html)