CPN commit
This commit is contained in:
@@ -14,7 +14,7 @@ echo.
|
|||||||
echo ========================================
|
echo ========================================
|
||||||
echo.
|
echo.
|
||||||
echo [1] Scan installed software
|
echo [1] Scan installed software
|
||||||
echo [2] Check and install updates
|
echo [2] Check for updates
|
||||||
echo [3] Uninstall software
|
echo [3] Uninstall software
|
||||||
echo [4] Full system report
|
echo [4] Full system report
|
||||||
echo [0] Exit
|
echo [0] Exit
|
||||||
@@ -23,7 +23,7 @@ echo ========================================
|
|||||||
set /p CHOICE="Select option: "
|
set /p CHOICE="Select option: "
|
||||||
|
|
||||||
if "%CHOICE%"=="1" goto SCAN_SOFTWARE
|
if "%CHOICE%"=="1" goto SCAN_SOFTWARE
|
||||||
if "%CHOICE%"=="2" goto CHECK_AND_UPDATE
|
if "%CHOICE%"=="2" goto CHECK_UPDATES
|
||||||
if "%CHOICE%"=="3" goto UNINSTALL_SOFTWARE
|
if "%CHOICE%"=="3" goto UNINSTALL_SOFTWARE
|
||||||
if "%CHOICE%"=="4" goto FULL_REPORT
|
if "%CHOICE%"=="4" goto FULL_REPORT
|
||||||
if "%CHOICE%"=="0" goto EXIT
|
if "%CHOICE%"=="0" goto EXIT
|
||||||
@@ -153,14 +153,15 @@ del "%tempfile%" >nul 2>&1
|
|||||||
pause
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
:CHECK_AND_UPDATE
|
:CHECK_UPDATES
|
||||||
cls
|
cls
|
||||||
echo ========================================
|
echo ========================================
|
||||||
echo Check and Install Updates
|
echo Check for Updates
|
||||||
echo ========================================
|
echo ========================================
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
set "tempfile=%TEMP%\update_check_%RANDOM%.tmp"
|
set "tempfile=%TEMP%\update_check_%RANDOM%.tmp"
|
||||||
|
set "updatelist=%TEMP%\update_programs_%RANDOM%.tmp"
|
||||||
|
|
||||||
(
|
(
|
||||||
echo ========================================
|
echo ========================================
|
||||||
@@ -182,7 +183,9 @@ if %errorlevel%==0 (
|
|||||||
echo [AVAILABLE UPDATES] >> "%tempfile%"
|
echo [AVAILABLE UPDATES] >> "%tempfile%"
|
||||||
echo ---------------------------------------- >> "%tempfile%"
|
echo ---------------------------------------- >> "%tempfile%"
|
||||||
|
|
||||||
winget upgrade >> "%tempfile%" 2>&1
|
REM Get list of upgradeable packages
|
||||||
|
winget upgrade > "%updatelist%" 2>&1
|
||||||
|
type "%updatelist%" >> "%tempfile%"
|
||||||
|
|
||||||
echo. >> "%tempfile%"
|
echo. >> "%tempfile%"
|
||||||
echo ======================================== >> "%tempfile%"
|
echo ======================================== >> "%tempfile%"
|
||||||
@@ -191,44 +194,178 @@ if %errorlevel%==0 (
|
|||||||
echo Cannot check for updates automatically. >> "%tempfile%"
|
echo Cannot check for updates automatically. >> "%tempfile%"
|
||||||
echo. >> "%tempfile%"
|
echo. >> "%tempfile%"
|
||||||
echo Please install Windows Package Manager or check manually. >> "%tempfile%"
|
echo Please install Windows Package Manager or check manually. >> "%tempfile%"
|
||||||
|
echo ======================================== >> "%tempfile%"
|
||||||
|
|
||||||
|
cls
|
||||||
|
type "%tempfile%"
|
||||||
|
echo.
|
||||||
|
|
||||||
|
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
||||||
|
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
pause
|
||||||
|
goto MENU
|
||||||
)
|
)
|
||||||
|
|
||||||
echo ======================================== >> "%tempfile%"
|
|
||||||
|
|
||||||
cls
|
cls
|
||||||
type "%tempfile%"
|
type "%tempfile%"
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
set "INSTALL_CHOICE="
|
REM Check if updates are available
|
||||||
set /p INSTALL_CHOICE="Install available updates? (Y/N): "
|
findstr /C:"upgrades available" "%updatelist%" >nul 2>&1
|
||||||
|
if %errorlevel%==0 (
|
||||||
if /i "%INSTALL_CHOICE%"=="Y" (
|
echo No updates available.
|
||||||
cls
|
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
||||||
echo ========================================
|
del "%tempfile%" >nul 2>&1
|
||||||
echo Installing Updates
|
del "%updatelist%" >nul 2>&1
|
||||||
echo ========================================
|
pause
|
||||||
echo.
|
goto MENU
|
||||||
echo Choose update method:
|
|
||||||
echo [1] Update all programs
|
|
||||||
echo [2] Update specific programs
|
|
||||||
echo [0] Cancel
|
|
||||||
echo.
|
|
||||||
set /p UPDATE_METHOD="Select option: "
|
|
||||||
|
|
||||||
if "!UPDATE_METHOD!"=="1" goto UPDATE_ALL_PROGRAMS
|
|
||||||
if "!UPDATE_METHOD!"=="2" goto UPDATE_SPECIFIC_PROGRAMS
|
|
||||||
if "!UPDATE_METHOD!"=="0" (
|
|
||||||
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
|
||||||
del "%tempfile%" >nul 2>&1
|
|
||||||
pause
|
|
||||||
goto MENU
|
|
||||||
)
|
|
||||||
goto CHECK_AND_UPDATE
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
echo ========================================
|
||||||
|
set /p INSTALL_CHOICE="Install updates? (Y/N): "
|
||||||
|
|
||||||
|
if /i not "%INSTALL_CHOICE%"=="Y" (
|
||||||
|
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
pause
|
||||||
|
goto MENU
|
||||||
|
)
|
||||||
|
|
||||||
|
cls
|
||||||
|
echo ========================================
|
||||||
|
echo Install Updates
|
||||||
|
echo ========================================
|
||||||
|
echo.
|
||||||
|
echo [1] Update all programs
|
||||||
|
echo [2] Select specific programs
|
||||||
|
echo [0] Cancel
|
||||||
|
echo.
|
||||||
|
set /p UPDATE_METHOD="Select option: "
|
||||||
|
|
||||||
|
if "%UPDATE_METHOD%"=="1" (
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
goto UPDATE_ALL_PROGRAMS
|
||||||
|
)
|
||||||
|
if "%UPDATE_METHOD%"=="2" (
|
||||||
|
goto SELECT_UPDATES
|
||||||
|
)
|
||||||
|
if "%UPDATE_METHOD%"=="0" (
|
||||||
|
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%tempfile%" "Update_Check"
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
pause
|
||||||
|
goto MENU
|
||||||
|
)
|
||||||
|
|
||||||
del "%tempfile%" >nul 2>&1
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
goto CHECK_UPDATES
|
||||||
|
|
||||||
|
:SELECT_UPDATES
|
||||||
|
cls
|
||||||
|
echo ========================================
|
||||||
|
echo Select Programs to Update
|
||||||
|
echo ========================================
|
||||||
|
echo.
|
||||||
|
echo Extracting available updates...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
set "pkglist=%TEMP%\packages_%RANDOM%.tmp"
|
||||||
|
|
||||||
|
REM Extract package IDs from winget output
|
||||||
|
winget upgrade | findstr /V /C:"Name" /C:"---" /C:"upgrades available" | findstr /V "^$" > "%pkglist%" 2>nul
|
||||||
|
|
||||||
|
REM Count available packages
|
||||||
|
set PKG_COUNT=0
|
||||||
|
for /f "tokens=*" %%a in ('type "%pkglist%"') do set /a PKG_COUNT+=1
|
||||||
|
|
||||||
|
if %PKG_COUNT%==0 (
|
||||||
|
echo No updatable packages found.
|
||||||
|
del "%pkglist%" >nul 2>&1
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
pause
|
||||||
|
goto MENU
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Display packages with numbers
|
||||||
|
cls
|
||||||
|
echo ========================================
|
||||||
|
echo Available Updates
|
||||||
|
echo ========================================
|
||||||
|
echo.
|
||||||
|
echo Enter the numbers of programs to update (separated by spaces)
|
||||||
|
echo Example: 1 3 5 7
|
||||||
|
echo.
|
||||||
|
echo ----------------------------------------
|
||||||
|
|
||||||
|
set INDEX=0
|
||||||
|
for /f "tokens=1* delims= " %%a in ('type "%pkglist%"') do (
|
||||||
|
set /a INDEX+=1
|
||||||
|
set "PKG_!INDEX!=%%a"
|
||||||
|
echo [!INDEX!] %%a
|
||||||
|
)
|
||||||
|
|
||||||
|
echo ----------------------------------------
|
||||||
|
echo.
|
||||||
|
set /p SELECTIONS="Enter numbers (space-separated): "
|
||||||
|
|
||||||
|
if "%SELECTIONS%"=="" (
|
||||||
|
echo [ERROR] No selection made!
|
||||||
|
del "%pkglist%" >nul 2>&1
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
|
pause
|
||||||
|
goto MENU
|
||||||
|
)
|
||||||
|
|
||||||
|
cls
|
||||||
|
echo ========================================
|
||||||
|
echo Installing Selected Updates
|
||||||
|
echo ========================================
|
||||||
|
echo.
|
||||||
|
|
||||||
|
set "logfile=%TEMP%\update_selected_%RANDOM%.log"
|
||||||
|
|
||||||
|
(
|
||||||
|
echo ========================================
|
||||||
|
echo SELECTED UPDATES INSTALLATION LOG
|
||||||
|
echo Date: %date% %time%
|
||||||
|
echo ========================================
|
||||||
|
echo.
|
||||||
|
) > "%logfile%"
|
||||||
|
|
||||||
|
REM Process selections
|
||||||
|
for %%S in (%SELECTIONS%) do (
|
||||||
|
if defined PKG_%%S (
|
||||||
|
echo ---------------------------------------- >> "%logfile%"
|
||||||
|
echo Updating: !PKG_%%S! >> "%logfile%"
|
||||||
|
echo ---------------------------------------- >> "%logfile%"
|
||||||
|
echo Updating: !PKG_%%S!
|
||||||
|
|
||||||
|
winget upgrade --id "!PKG_%%S!" --accept-source-agreements --accept-package-agreements >> "%logfile%" 2>&1
|
||||||
|
|
||||||
|
echo. >> "%logfile%"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
echo ======================================== >> "%logfile%"
|
||||||
|
echo Update process completed. >> "%logfile%"
|
||||||
|
|
||||||
|
cls
|
||||||
|
type "%logfile%"
|
||||||
|
echo.
|
||||||
|
|
||||||
|
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%logfile%" "Update_Selected"
|
||||||
|
|
||||||
|
del "%logfile%" >nul 2>&1
|
||||||
|
del "%pkglist%" >nul 2>&1
|
||||||
|
del "%tempfile%" >nul 2>&1
|
||||||
|
del "%updatelist%" >nul 2>&1
|
||||||
pause
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
@@ -277,70 +414,6 @@ del "%logfile%" >nul 2>&1
|
|||||||
pause
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
:UPDATE_SPECIFIC_PROGRAMS
|
|
||||||
cls
|
|
||||||
echo ========================================
|
|
||||||
echo Update Specific Programs
|
|
||||||
echo ========================================
|
|
||||||
echo.
|
|
||||||
echo Enter program IDs or names separated by commas.
|
|
||||||
echo Example: Firefox, Chrome, VSCode
|
|
||||||
echo.
|
|
||||||
set /p PROGRAMS="Programs (comma-separated): "
|
|
||||||
|
|
||||||
if "%PROGRAMS%"=="" (
|
|
||||||
echo [ERROR] No programs specified!
|
|
||||||
pause
|
|
||||||
goto CHECK_AND_UPDATE
|
|
||||||
)
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Updating selected programs...
|
|
||||||
echo.
|
|
||||||
|
|
||||||
set "logfile=%TEMP%\update_specific_%RANDOM%.log"
|
|
||||||
|
|
||||||
(
|
|
||||||
echo ========================================
|
|
||||||
echo SPECIFIC PROGRAM UPDATE LOG
|
|
||||||
echo Date: %date% %time%
|
|
||||||
echo ========================================
|
|
||||||
echo.
|
|
||||||
echo Programs to update: %PROGRAMS%
|
|
||||||
echo.
|
|
||||||
) > "%logfile%"
|
|
||||||
|
|
||||||
REM Process comma-separated list
|
|
||||||
set "PROGRAMS=%PROGRAMS:, =,%"
|
|
||||||
set "PROGRAMS=%PROGRAMS: ,=,%"
|
|
||||||
|
|
||||||
for %%P in (%PROGRAMS%) do (
|
|
||||||
echo ---------------------------------------- >> "%logfile%"
|
|
||||||
echo Updating: %%P >> "%logfile%"
|
|
||||||
echo ---------------------------------------- >> "%logfile%"
|
|
||||||
|
|
||||||
where winget >nul 2>&1
|
|
||||||
if !errorlevel!==0 (
|
|
||||||
winget upgrade "%%P" --accept-source-agreements --accept-package-agreements >> "%logfile%" 2>&1
|
|
||||||
) else (
|
|
||||||
echo [ERROR] Winget not available >> "%logfile%"
|
|
||||||
)
|
|
||||||
echo. >> "%logfile%"
|
|
||||||
)
|
|
||||||
|
|
||||||
echo ======================================== >> "%logfile%"
|
|
||||||
echo Update process completed. >> "%logfile%"
|
|
||||||
|
|
||||||
cls
|
|
||||||
type "%logfile%"
|
|
||||||
echo.
|
|
||||||
|
|
||||||
if /i "%ENABLE_EXPORT%"=="Y" call :EXPORT_FILE "%logfile%" "Update_Specific"
|
|
||||||
|
|
||||||
del "%logfile%" >nul 2>&1
|
|
||||||
pause
|
|
||||||
goto MENU
|
|
||||||
|
|
||||||
:UNINSTALL_SOFTWARE
|
:UNINSTALL_SOFTWARE
|
||||||
cls
|
cls
|
||||||
echo ========================================
|
echo ========================================
|
||||||
@@ -540,4 +613,4 @@ echo Thank you for using Software Management Tool
|
|||||||
echo ========================================
|
echo ========================================
|
||||||
echo.
|
echo.
|
||||||
timeout /t 2 >nul
|
timeout /t 2 >nul
|
||||||
exit
|
exit
|
||||||
Reference in New Issue
Block a user