portex.bat aktualisiert
This commit is contained in:
194
portex.bat
Normal file
194
portex.bat
Normal file
@@ -0,0 +1,194 @@
|
||||
@echo off
|
||||
REM === Batchr Menu Launcher ===
|
||||
REM Repository: https://git.weektab.org/companas/batchr
|
||||
REM Powered by Weektab
|
||||
REM Author: Flamur Veliqi (Netbie)
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
:MAIN_MENU
|
||||
cls
|
||||
echo Batchr Menu Launcher
|
||||
echo.
|
||||
echo Powered by Weektab
|
||||
echo Web: www.weektab.org
|
||||
echo E-Mail: support@weektab.org
|
||||
echo Project: Companas
|
||||
echo Repository: git.weektab.org/companas/batchr
|
||||
echo.
|
||||
echo //////////////////////////////////////////////////
|
||||
echo.
|
||||
echo Select script category:
|
||||
echo.
|
||||
echo [1] Own Scripts (from /files)
|
||||
echo [2] Third-Party Scripts (from /files/third_party)
|
||||
echo [0] Exit
|
||||
echo.
|
||||
echo //////////////////////////////////////////////////
|
||||
echo.
|
||||
set /p CATEGORY="Select option: "
|
||||
|
||||
if "%CATEGORY%"=="0" goto EXIT
|
||||
if "%CATEGORY%"=="1" (
|
||||
set "SCRIPT_PATH=files"
|
||||
set "API_PATH=files"
|
||||
set "CATEGORY_NAME=Own Scripts"
|
||||
goto MENU
|
||||
)
|
||||
if "%CATEGORY%"=="2" (
|
||||
set "SCRIPT_PATH=files/third_party"
|
||||
set "API_PATH=files/third_party"
|
||||
set "CATEGORY_NAME=Third-Party Scripts"
|
||||
goto MENU
|
||||
)
|
||||
|
||||
echo Invalid selection!
|
||||
timeout /t 2 >nul
|
||||
goto MAIN_MENU
|
||||
|
||||
:MENU
|
||||
cls
|
||||
echo Batchr Menu Launcher - !CATEGORY_NAME!
|
||||
echo.
|
||||
echo Powered by Weektab
|
||||
echo Web: www.weektab.org
|
||||
echo E-Mail: support@weektab.org
|
||||
echo Project: Companas
|
||||
echo Repository: git.weektab.org/companas/batchr
|
||||
echo Author: Flamur Veliqi (Netbie)
|
||||
echo.
|
||||
echo //////////////////////////////////////////////////
|
||||
echo.
|
||||
echo Scanning /!SCRIPT_PATH! directory...
|
||||
echo.
|
||||
|
||||
REM Use Gitea API to list files in selected directory
|
||||
powershell -Command "$ProgressPreference = 'SilentlyContinue'; try { $response = Invoke-RestMethod -Uri 'https://git.weektab.org/api/v1/repos/companas/batchr/contents/!API_PATH!'; $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
|
||||
goto MAIN_MENU
|
||||
)
|
||||
|
||||
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
|
||||
goto MAIN_MENU
|
||||
)
|
||||
|
||||
if "%FIRST_LINE%"=="NONE" (
|
||||
echo No .bat files found in /!SCRIPT_PATH! directory!
|
||||
pause
|
||||
goto MAIN_MENU
|
||||
)
|
||||
|
||||
REM Get all script titles in one PowerShell call
|
||||
echo Extracting list...
|
||||
echo.
|
||||
powershell -Command "$ProgressPreference = 'SilentlyContinue'; try { $files = Get-Content '%TEMP%\repo_scripts.txt'; $results = @(); foreach ($file in $files) { if ($file -and $file -ne '' -and $file -ne 'NONE' -and $file -ne 'ERROR') { try { $url = 'https://git.weektab.org/companas/batchr/raw/branch/main/!SCRIPT_PATH!/' + $file; $content = (Invoke-WebRequest -Uri $url -UseBasicParsing).Content; if ($content -match 'REM\s*===\s*(.+?)\s*===') { $results += $file + '|' + $matches[1] } else { $results += $file + '|' } } catch { $results += $file + '|' } } }; $results | Out-File '%TEMP%\repo_titles.txt' -Encoding ASCII } catch { }" 2>nul
|
||||
|
||||
REM Display menu
|
||||
set INDEX=0
|
||||
for /f "tokens=1,2 delims=|" %%a in (%TEMP%\repo_titles.txt) do (
|
||||
set "FILENAME=%%a"
|
||||
set "SCRIPT_TITLE=%%b"
|
||||
|
||||
if not "!FILENAME!"=="" (
|
||||
set /a INDEX+=1
|
||||
set "SCRIPT_NAME[!INDEX!]=!FILENAME!"
|
||||
|
||||
REM Fallback to formatted filename if title not found
|
||||
if "!SCRIPT_TITLE!"=="" (
|
||||
set "SCRIPT_TITLE=!FILENAME:.bat=!"
|
||||
set "SCRIPT_TITLE=!SCRIPT_TITLE:-= !"
|
||||
set "SCRIPT_TITLE=!SCRIPT_TITLE:_= !"
|
||||
)
|
||||
|
||||
set "DISPLAY[!INDEX!]=!SCRIPT_TITLE!"
|
||||
echo [!INDEX!] !SCRIPT_TITLE!
|
||||
)
|
||||
)
|
||||
|
||||
set TOTAL_SCRIPTS=%INDEX%
|
||||
|
||||
if %TOTAL_SCRIPTS%==0 (
|
||||
echo No .bat files found!
|
||||
pause
|
||||
goto MAIN_MENU
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [R] Refresh List
|
||||
echo [B] Back to Category Selection
|
||||
echo [0] Exit
|
||||
echo.
|
||||
echo //////////////////////////////////////////////////
|
||||
echo.
|
||||
set /p CHOICE="Select option: "
|
||||
|
||||
if /i "%CHOICE%"=="R" goto MENU
|
||||
if /i "%CHOICE%"=="B" goto MAIN_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 /// Executing: !DISPLAY[%CHOICE%]!
|
||||
echo.
|
||||
|
||||
set "SCRIPT_URL=https://git.weektab.org/companas/batchr/raw/branch/main/!SCRIPT_PATH!/!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 /// Script initialized
|
||||
echo.
|
||||
call "%TEMP_SCRIPT%"
|
||||
|
||||
if exist "%TEMP_SCRIPT%" del "%TEMP_SCRIPT%" 2>nul
|
||||
|
||||
echo.
|
||||
echo //////////////////////////////////////////////////
|
||||
echo Completed!
|
||||
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
|
||||
if exist "%TEMP%\repo_titles.txt" del "%TEMP%\repo_titles.txt" 2>nul
|
||||
cls
|
||||
echo Goodbye!
|
||||
timeout /t 1 >nul
|
||||
exit
|
||||
Reference in New Issue
Block a user