Scripts Batch en MS-DOS: Creación de Menús Interactivos y Gestión de Ficheros
Script 1: Menú interactivo para gestión, visualización y copia de ficheros
El siguiente script por lotes (.bat) valida la existencia de un fichero pasado por parámetro y despliega un menú interactivo en consola con opciones para visualizar su contenido, realizar copias, editarlo o consultar el directorio.
Código corregido del menú principal
@echo off
if "%~1" == "" goto error1
if not exist "%~1" goto error2
:menu
cls
for %%a in (1 2 3 4 5 6 7 8 9 10) do echo.
echo ==============================
echo MENÚ PRINCIPAL
echo ==============================
echo V - Visualización
echo C - Copias
echo E - Edición
echo F - Fichero de entrada
echo T - Terminar
:pulsar
choice /C VCEFT /N /M "Elige una opción: "
if errorlevel 5 goto fin
if errorlevel 4 goto fichero_entrada
if errorlevel 3 goto edicion
if errorlevel 2 goto copiar
if errorlevel 1 goto visualizacion
goto pulsar
:visualizacion
cls
for %%a in (1 2 3 4 5 6 7 8 9 10) do echo.
echo ==============================
echo VISUALIZACIÓN
echo ==============================
echo O - Original
echo A - Ascendente
echo D - Descendente
echo V - Volver
:pulsar1
choice /C OADV /N /M "Elige una opción: "
if errorlevel 4 goto menu
if errorlevel 3 goto descendente
if errorlevel 2 goto ascendente
if errorlevel 1 goto original
goto pulsar1
:original
cls
type "%~1" | more
pause
goto visualizacion
:ascendente
cls
sort "%~1" | more
pause
goto visualizacion
:descendente
cls
sort /R "%~1" | more
pause
goto visualizacion
:copiar
cls
for %%a in (1 2 3 4 5 6 7 8 9 10) do echo.
echo ==============================
echo COPIAR
echo ==============================
echo U - USB
echo H - Disco duro
echo V - Volver
:pulsar3
choice /C UHV /N /M "Elige una opción: "
if errorlevel 3 goto menu
if errorlevel 2 goto disco_duro
if errorlevel 1 goto usb
goto pulsar3
:usb
cls
copy "%~1" E:\ >nul
goto copiar
:disco_duro
if exist copias (
copy "%~1" copias >nul
) else (
xcopy "%~1" copias\ >nul
)
cls
dir copias
pause
goto copiar
:edicion
cls
edit "%~1"
pause
goto menu
:fichero_entrada
cls
dir . | more
goto menu
:error1
cls
for %%a in (1 2 3 4 5 6 7 8 9 10) do echo.
echo Error: No has introducido parámetros.
pause
goto fin
:error2
cls
for %%a in (1 2 3 4 5 6 7 8 9 10) do echo.
echo Error: No existe el fichero "%~1".
pause
goto fin
:fin
cls
Script 2: Búsqueda y conteo de cadenas en ficheros .BAS
Este segundo script recibe dos parámetros: el directorio donde residen los ficheros con extensión .BAS y la cadena de texto que se desea contabilizar mediante el comando FIND.
Código corregido del script de búsqueda
@echo off
if "%~1" == "" goto error1
if "%~2" == "" goto error2
if not exist "%~1" goto error3
cls
type "%~1\*.bas" | more
find /c "%~2" C:\*.*
pause
goto fin
:error1
cls
echo Error: No has introducido el primer parámetro (directorio).
pause
goto fin
:error2
cls
echo Error: No has introducido el segundo parámetro (cadena a buscar).
pause
goto fin
:error3
cls
echo Error: No existe el directorio especificado.
pause
goto fin
:fin