@echo off
setlocal enabledelayedexpansion
:: Main script loop
:menu
cls
echo System Information Menu
echo ----------------------
echo 1. Display OS Information
echo 2. Display Hardware Details
echo 3. Display Network Configuration
echo 4. Display Running Processes
echo 5. Exit
echo ----------------------
set /p choice=Enter your choice [1-5]:
:: Validate input
if "!choice!"=="" goto invalid
if "!choice!"=="1" goto osinfo
if "!choice!"=="2" goto hardware
if "!choice!"=="3" goto network
if "!choice!"=="4" goto processes
if "!choice!"=="5" exit /b
goto invalid
:: Function definitions
:osinfo
call :header "Operating System Information"
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
pause
goto menu
:hardware
call :header "Hardware Information"
echo CPU:
wmic cpu get name
echo.
echo Memory:
wmic memorychip get capacity
echo.
echo Disks:
wmic diskdrive get model,size
pause
goto menu
:network
call :header "Network Configuration"
ipconfig | findstr IPv4
echo.
arp -a
pause
goto menu
:processes
call :header "Running Processes"
tasklist
pause
goto menu
:invalid
echo Invalid selection. Please try again.
pause
goto menu
:header
echo.
echo ====================================
echo %~1
echo ====================================
echo.
goto :eof