Scripts Batch en MS-DOS: Creación de Menús Interactivos y Gestión de Ficheros

Informática y Telecomunicaciones3,16 KB

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

Descargar

PDF Word HTML