Test Foro de elhacker.net SMF 2.1

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 .

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
Cita de: **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.

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 (bash) [Seleccionar]
@echo off
goto main

:error
echo archivo no existe.
pause
goto main


:Main
cls
set /p file=Indique el nombre del archivo:
if not exist %file% goto error
set string=telefono
echo.
setlocal enabledelayedexpansion
set /a nchar=0
call:Contar
set /a nlin=0
For /f "useback tokens=*" %%F in ("%file%") do (
    set /a nlin+=1
    set "line=%%F"
    set /a xcont=0
    call:Comparar
)
echo. & echo Terminado. & pause>nul & goto Main

:Contar
If /i "!string:~%nchar%,1!" == "" goto:eof
set /a nchar+=1
goto Contar

:Comparar
If /i "!line:~%xcont%,%nchar%!" == "%string%" (
    set mtch=T
    call:Msj
)
If /i "!line:~%xcont%,%nchar%!" == "" (
    set mtch=F
    call:Msj
    goto:eof
)
set /a xcont+=1
goto Comparar

:Msj
If "%mtch%" == "T" (
    cls
    color a
    echo Telefono encontrado:  [%line%] & echo.
    call :Continue
)
If "%mtch%" == "F" echo LINEA %nlin%: %line%
goto:eof
exit

:Continue
set /p numero=introduzca El nuevo Numero :
    Call :TEXTMAN RL %nlin% "%file%" "Telefono : %numero%"
    pause
    exit

:TEXTMAN
(SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Invalid parameter & Exit /B 1)) & (GOTO:EOF)
:RL
(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)
:RENAMER
(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)