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