204 lines
4.9 KiB
Batchfile
204 lines
4.9 KiB
Batchfile
@echo off
|
|
REM === Dynamic Batch Scripts Menu Launcher ===
|
|
REM Repository: https://git.weektab.org/companas/batch-scripts
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
:MENU
|
|
cls
|
|
echo ========================================
|
|
echo Batch Scripts Menu - Dynamic Loader
|
|
echo ========================================
|
|
echo.
|
|
echo Powered by Weektab - weektab.org
|
|
echo Repository: git.weektab.org/companas/batch-scripts
|
|
echo.
|
|
echo ========================================
|
|
echo.
|
|
echo Scanning /files directory...
|
|
echo.
|
|
|
|
REM Use Gitea API to list files in /files directory
|
|
powershell -Command "$ProgressPreference = 'SilentlyContinue'; try { $response = Invoke-RestMethod -Uri 'https://git.weektab.org/api/v1/repos/companas/batch-scripts/contents/files'; $batFiles = $response | Where-Object { $_.name -like '*.bat' } | Select-Object -ExpandProperty name | Sort-Object; if ($batFiles) { $batFiles | Out-File '%TEMP%\repo_scripts.txt' -Encoding ASCII -NoNewline:$false } else { 'NONE' | Out-File '%TEMP%\repo_scripts.txt' -Encoding ASCII } } catch { 'ERROR' | Out-File '%TEMP%\repo_scripts.txt' -Encoding ASCII }" 2>nul
|
|
|
|
if not exist "%TEMP%\repo_scripts.txt" (
|
|
echo ERROR: Unable to access repository API
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM Check for errors
|
|
set "FIRST_LINE="
|
|
for /f "delims=" %%a in (%TEMP%\repo_scripts.txt) do (
|
|
set "FIRST_LINE=%%a"
|
|
goto :check_error
|
|
)
|
|
:check_error
|
|
|
|
if "%FIRST_LINE%"=="ERROR" (
|
|
echo ERROR: API request failed
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
if "%FIRST_LINE%"=="NONE" (
|
|
echo No .bat files found in /files directory!
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM Display menu
|
|
set INDEX=0
|
|
for /f "delims=" %%a in (%TEMP%\repo_scripts.txt) do (
|
|
set "LINE=%%a"
|
|
if not "!LINE!"=="" (
|
|
set /a INDEX+=1
|
|
set "SCRIPT_NAME[!INDEX!]=!LINE!"
|
|
|
|
REM Format display name (remove .bat and replace separators)
|
|
set "DISPLAY=!LINE:.bat=!"
|
|
set "DISPLAY=!DISPLAY:-= !"
|
|
set "DISPLAY=!DISPLAY:_= !"
|
|
|
|
echo [!INDEX!] !DISPLAY!
|
|
)
|
|
)
|
|
|
|
set TOTAL_SCRIPTS=%INDEX%
|
|
|
|
if %TOTAL_SCRIPTS%==0 (
|
|
echo No .bat files found!
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo [R] Refresh List
|
|
echo [0] Exit
|
|
echo.
|
|
echo ========================================
|
|
set /p CHOICE="Select option: "
|
|
|
|
if /i "%CHOICE%"=="R" goto MENU
|
|
if "%CHOICE%"=="0" goto EXIT
|
|
|
|
REM Validate selection
|
|
set "VALID=0"
|
|
for /l %%i in (1,1,%TOTAL_SCRIPTS%) do (
|
|
if "%CHOICE%"=="%%i" set "VALID=1"
|
|
)
|
|
|
|
if "%VALID%"=="0" (
|
|
echo Invalid selection!
|
|
timeout /t 2 >nul
|
|
goto MENU
|
|
)
|
|
|
|
REM Execute script
|
|
cls
|
|
echo ========================================
|
|
echo Executing: !SCRIPT_NAME[%CHOICE%]!
|
|
echo ========================================
|
|
echo.
|
|
|
|
set "SCRIPT_URL=https://git.weektab.org/companas/batch-scripts/raw/branch/main/files/!SCRIPT_NAME[%CHOICE%]!"
|
|
set "TEMP_SCRIPT=%TEMP%\batch_script_%RANDOM%.bat"
|
|
|
|
echo Downloading script...
|
|
powershell -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri '!SCRIPT_URL!' -OutFile '%TEMP_SCRIPT%'" 2>nul
|
|
|
|
if not exist "%TEMP_SCRIPT%" (
|
|
echo ERROR: Download failed!
|
|
echo URL: !SCRIPT_URL!
|
|
pause
|
|
goto MENU
|
|
)
|
|
|
|
echo Script downloaded successfully!
|
|
echo.
|
|
echo ========================================
|
|
call "%TEMP_SCRIPT%"
|
|
|
|
if exist "%TEMP_SCRIPT%" del "%TEMP_SCRIPT%" 2>nul
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Completed!
|
|
echo ========================================
|
|
pause
|
|
goto MENU
|
|
|
|
:PING_TOOL
|
|
cls
|
|
echo ========================================
|
|
echo Ping Tool
|
|
echo ========================================
|
|
echo.
|
|
set /p TARGET="Enter target (IP or domain): "
|
|
if "%TARGET%"=="" goto MENU
|
|
|
|
echo.
|
|
echo [1] Single test (4 packets)
|
|
echo [2] Continuous (Ctrl+C to stop)
|
|
echo.
|
|
set /p MODE="Mode: "
|
|
|
|
echo.
|
|
if "%MODE%"=="1" (
|
|
ping -n 4 %TARGET%
|
|
) else if "%MODE%"=="2" (
|
|
ping -t %TARGET%
|
|
) else (
|
|
echo Invalid mode!
|
|
)
|
|
echo.
|
|
pause
|
|
goto MENU
|
|
|
|
:SYSTEM_INFO
|
|
cls
|
|
echo ========================================
|
|
echo System Information
|
|
echo ========================================
|
|
echo.
|
|
echo [1] Quick Overview
|
|
echo [2] Hardware
|
|
echo [3] Storage
|
|
echo [4] Network
|
|
echo [5] Complete Report
|
|
echo.
|
|
set /p SYSCHOICE="Select: "
|
|
|
|
echo.
|
|
if "%SYSCHOICE%"=="1" (
|
|
systeminfo | findstr /C:"Host Name" /C:"OS Name" /C:"OS Version" /C:"System Type" /C:"Total Physical Memory"
|
|
) else if "%SYSCHOICE%"=="2" (
|
|
echo === CPU ===
|
|
wmic cpu get name,numberofcores,maxclockspeed
|
|
echo.
|
|
echo === Memory ===
|
|
wmic memorychip get capacity,speed,manufacturer
|
|
) else if "%SYSCHOICE%"=="3" (
|
|
echo === Disks ===
|
|
wmic diskdrive get model,size,status
|
|
echo.
|
|
echo === Partitions ===
|
|
wmic logicaldisk get deviceid,volumename,size,freespace
|
|
) else if "%SYSCHOICE%"=="4" (
|
|
ipconfig
|
|
) else if "%SYSCHOICE%"=="5" (
|
|
systeminfo
|
|
) else (
|
|
echo Invalid!
|
|
)
|
|
echo.
|
|
pause
|
|
goto MENU
|
|
|
|
:EXIT
|
|
if exist "%TEMP%\repo_readme.md" del "%TEMP%\repo_readme.md" 2>nul
|
|
if exist "%TEMP%\repo_scripts.txt" del "%TEMP%\repo_scripts.txt" 2>nul
|
|
cls
|
|
echo Goodbye!
|
|
timeout /t 1 >nul
|
|
exit |