pero tampoco consigo que la agenda borre un registro sólo, lo que consigo es que se cargue por completo el archivo txt donde están todos los registros.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú@echo off
:menu
cls
echo.
echo.
echo **************************************
echo ** AGENDA TELEFONICA **
echo ** **
echo ** 1. Agregar **
echo ** **
echo ** 2. Modificar **
echo ** **
echo ** 3. Borrar **
echo ** **
echo ** 4. Buscar **
echo ** **
echo ** 0. Salir **
echo ** **
echo **************************************
echo.
echo Escoger opcion:
set /p opt=
if %opt%==1 goto :agregar
if %opt%==2 goto :modificar
if %opt%==3 goto :borrar
if %opt%==4 goto :buscar
if %opt%==0 goto :salir
goto menu
:agregar
cls
set /p agregar= Nuevo nombre:
echo.
set /p telefono= Numero telefono:
echo.
echo %agregar% : %telefono%>> agenda.txt
echo Registro agregado
echo.
echo Pulse una tecla para volver al menu
pause>nul
goto :menu
:modificar
cls
set /p modificar= Escriba el nombre a modificar:
set /p mod= Escriba el nuevo nombre:
for /f "tokens=* delims=" %%x in ('type Registros') do (
set /a conta +=1
set linea=%%x
set linea=!linea:%modificar%=%mod%!
call :show !linea!
)
goto :menu
:show
echo %* >> out.txt
if !conta!==1 (
echo.>Registros
)
type out.txt >> Registros
del /f /a /q out.txt
pause>nul
goto :menu
:borrar
cls
set /p borrar= Nombre del contacto a eliminar:
if exist "agenda\%borrar%.bat" (goto dels) else (goto deln)
:dels
del /f /s /q "G:\agenda\%borrar%.bat"
cls
echo El contacto ha sido eliminado correctamente
pause>nul
goto :menu
:deln
cls
echo Ese contacto no existe en la agenda
echo.
:buscar
cls
echo.
set /p find= Buscar:
cls
echo.
echo Resultados:
echo.
find /n /i "%find%" agenda.txt
echo Pulse una tecla para volver al menu
pause>nul
goto :menu
:salir
cls
echo Ok, presione cualquier tecla para salir
pause>nul
exit
También tengo otro problema, que no consigo que me lo ordene de esta manera:
un asterisco y un número par en la misma línea en un archivo y un asterisco y un número impar en una línea en otro archivo, :así
* 2
* 6
en el otro archivo así
* 1
* 5
tengo esto
@echo off
cls
echo Voy a ordenar el fichero txt:
echo.
set /p ordenar=
sort %ordenar%
echo Archivo ordenado
echo.
echo Pulse una tecla para volver al menu
pause>nul