::@Echo off & Cls
Setlocal EnableDelayedExpansion
Mode Con Cols=100 Lines=25
Title BMCTP v0.1
REM ~~~~ Verificar o Crear ~~~~
:: Verifica si existe el directorio de archivos temporales creado por el programa
:: En caso que no exista, lo crea
:: Redirige al inicio del script
If Exist "%TMP%\BMCTP" (
Goto Inicio
) Else (
MD "%TMP%\BMCTP"
Goto Inicio
)
REM ~~~~ Configuracion de ruta ~~~~
:: Coloca la ruta desde donde fue abierto el programa coo ruta por defecto
:: Pregunta al usuario si desea cambiar la ruta
:: Redirige al cambio de ruta en caso de solicitarlo
:Inicio
Set Ruta=%CD%
Echo.
Echo. & Echo =======================================================
Echo Su ruta actual es %Ruta%, desea cambiarla? (Si/No):
Choice /C sn /N
If "%ErrorLevel%" == "1" Call:Nueva_Ruta
If "%ErrorLevel%" == "2" Echo La ruta se mantiene por defecto...
CD %Ruta%
REM ~~~~ Nombre del archivo ~~~~
:: Pregunta el nombre del archivo a ser modificado
:: Se comprueba la existencia de dicho archivo
:: Si todo sale bien redirige a Backup
:Nombre_Texto
Echo. & Echo =======================================================
Echo Escriba el nombre del archivo a modificar (Solo archivos de texto plano "txt"):
Set /P "Archivo=>"
If Not Exist "%Archivo%.txt" (
Echo No se ha encontrado el archivo solicitado, intente nuevamente.
Goto Nombre_Texto
) Else (
Echo Archivo encontrado.
Goto Backup
)
REM ~~~~ Crear un backup ~~~~
:: Por seguridad se crea un backup del archivo a modificar antes de empezar
:: No permite seguir en caso que no se realice correctamente el backup
:: Redirige a la seccion de Caracter
:Backup
Copy /Y "%Ruta%\%Archivo%.txt" "%TMP%\BMCTP\%Archivo%_Backup.txt" >nul
If Exist "%TMP%\BMCTP\%Archivo%_Backup.txt" (
Echo. & Echo =======================================================
Echo Backup realizado con exito.
>Nul Ping -n 3 Localhost & Goto Caracter
) Else (
Echo Error al hacer Backup del archivo.
Pause>nul
Exit
)
:Caracter
Echo.
Echo. & Echo =======================================================
Echo Escriba el caracter a borrar del texto:
Set /P Caracter=^>
Echo Borrar %caracter% por----:
Set /P Cambio=^>
If "%Caracter%" == "" Echo Por favor no intente ingresar valores nulos... & Echo. & Goto Caracter
>Nul Ping -n 1 Localhost
Echo =======================================================
Echo Ok... & Echo.
Echo Buscando... & Echo.
Echo Borrando el caracter "%Caracter%" del archivo...
Echo.
Echo (Esto puede demorar, dependiendo del archivo)
Echo =======================================================
:Mod
Set PosX=0
For /F "Usebackq Tokens=*" %%a IN ("%Ruta%\%Archivo%.txt") Do (
Set Linea=%%a
Call:Buscador
Set "LineaNueva="
)
Goto Aprobacion
:Buscador
pause
If Not "%Caracter%" == "!Linea:~%PosX%,1!" (
If "!Linea:~%PosX%,1!" == "" (
Set PosX=0
Echo !LineaNueva!>>"%TMP%\BMCTP\Nuevo_%Archivo%.txt"
Goto:Eof
)
Set "LineaNueva=%LineaNueva%!Linea:~%PosX%,1!"
Set /A PosX+=1
Goto Buscador
) Else (
Set "LineaNueva=%LineaNueva%%cambio%
If "!Linea:~%PosX%,1!" == "" (
Set PosX=0
Echo !LineaNueva!>>"%TMP%\BMCTP\Nuevo_%Archivo%.txt"
Goto:Eof
)
Set /A PosX+=1
Goto Buscador
)
:Aprobacion
Echo.
Echo Modificacion lista, desea revisar el archivo? (Si/No)
Choice /C sn /N
If "%ErrorLevel%" == "1" "%TMP%\BMCTP\Nuevo_%Archivo%.txt" && Goto Fin
If "%ErrorLevel%" == "2" Goto Fin
:Fin
Echo.
Copy /Y "%TMP%\BMCTP\Nuevo_%Archivo%.txt" "%Ruta%\Nuevo_%Archivo%.txt" >nul
>Nul Ping -n 1 Localhost
Del /Q "%TMP%\BMCTP" >nul
Echo El archivo modificado se encuentra en : "%Ruta%".
Echo El archivo Back-Up se encuentra en : "%TMP%\BMCTP".
Echo. & Echo Hemos terminado!
Echo. & Echo Saliendo...
>Nul Ping -n 10 Localhost & Exit
:Nueva_Ruta
Echo.
Set /P Ruta=Escriba la ruta nueva:
If Not Exist "%Ruta%" (
Echo Error. La ruta no existe o fue mal escrita, por favor intente de nuevo...
Goto Nueva_Ruta
) Else (
Echo La ruta ha sido cambiada!
Goto:Eof
)