@echo off REM === SSH Known Hosts Manager === setlocal enabledelayedexpansion set SSH_DIR=%USERPROFILE%\.ssh set KNOWN_HOSTS=%SSH_DIR%\known_hosts set KNOWN_HOSTS_OLD=%SSH_DIR%\known_hosts.old :MENU cls echo ======================================== echo SSH Known Hosts Manager echo ======================================== echo. echo SSH Directory: %SSH_DIR% echo. REM Check if .ssh directory exists if not exist "%SSH_DIR%" ( echo ERROR: .ssh directory not found! echo Directory does not exist: %SSH_DIR% echo. pause exit /b 1 ) REM Check which files exist set HOSTS_EXISTS=0 set HOSTS_OLD_EXISTS=0 if exist "%KNOWN_HOSTS%" set HOSTS_EXISTS=1 if exist "%KNOWN_HOSTS_OLD%" set HOSTS_OLD_EXISTS=1 REM Display available files echo Available files: echo. if %HOSTS_EXISTS%==0 if %HOSTS_OLD_EXISTS%==0 ( echo No known_hosts files found! echo. pause exit /b 0 ) set FILE_COUNT=0 if %HOSTS_EXISTS%==1 ( set /a FILE_COUNT+=1 echo [!FILE_COUNT!] known_hosts set "FILE_1=HOSTS" ) if %HOSTS_OLD_EXISTS%==1 ( set /a FILE_COUNT+=1 echo [!FILE_COUNT!] known_hosts.old if %HOSTS_EXISTS%==1 ( set "FILE_2=HOSTS_OLD" ) else ( set "FILE_1=HOSTS_OLD" ) ) echo. echo [0] Exit echo. echo ======================================== set /p FILE_CHOICE="Select file to manage: " if "%FILE_CHOICE%"=="0" goto EXIT REM Determine which file was selected set "SELECTED_FILE=" set "SELECTED_NAME=" if "%FILE_CHOICE%"=="1" ( if "!FILE_1!"=="HOSTS" ( set "SELECTED_FILE=%KNOWN_HOSTS%" set "SELECTED_NAME=known_hosts" ) else if "!FILE_1!"=="HOSTS_OLD" ( set "SELECTED_FILE=%KNOWN_HOSTS_OLD%" set "SELECTED_NAME=known_hosts.old" ) ) if "%FILE_CHOICE%"=="2" ( if "!FILE_2!"=="HOSTS_OLD" ( set "SELECTED_FILE=%KNOWN_HOSTS_OLD%" set "SELECTED_NAME=known_hosts.old" ) ) if "!SELECTED_FILE!"=="" ( echo Invalid selection! timeout /t 2 >nul goto MENU ) :FILE_MENU cls echo ======================================== echo Managing: !SELECTED_NAME! echo ======================================== echo. echo [1] View file content echo [2] Delete specific line echo [3] Delete entire file echo [0] Back to file selection echo. echo ======================================== set /p ACTION="Select action: " if "%ACTION%"=="1" goto VIEW_FILE if "%ACTION%"=="2" goto DELETE_LINE if "%ACTION%"=="3" goto DELETE_FILE if "%ACTION%"=="0" goto MENU goto FILE_MENU :VIEW_FILE cls echo ======================================== echo Content of !SELECTED_NAME! echo ======================================== echo. set LINE_NUM=0 for /f "delims=" %%a in (!SELECTED_FILE!) do ( set /a LINE_NUM+=1 echo [!LINE_NUM!] %%a ) if %LINE_NUM%==0 ( echo File is empty ) echo. echo Total lines: %LINE_NUM% echo. pause goto FILE_MENU :DELETE_LINE cls echo ======================================== echo Delete Line from !SELECTED_NAME! echo ======================================== echo. echo Current content: echo ---------------------------------------- set LINE_NUM=0 for /f "delims=" %%a in (!SELECTED_FILE!) do ( set /a LINE_NUM+=1 echo [!LINE_NUM!] %%a ) echo ---------------------------------------- echo Total lines: %LINE_NUM% echo. if %LINE_NUM%==0 ( echo File is empty - nothing to delete pause goto FILE_MENU ) set /p DEL_LINE="Enter line number to delete (0 to cancel): " if "%DEL_LINE%"=="0" goto FILE_MENU REM Validate input set "VALID=0" for /l %%i in (1,1,%LINE_NUM%) do ( if "%DEL_LINE%"=="%%i" set "VALID=1" ) if "%VALID%"=="0" ( echo Invalid line number! pause goto FILE_MENU ) echo. set /p BACKUP="Create backup before deletion? (Y/N): " if /i "%BACKUP%"=="Y" ( copy "!SELECTED_FILE!" "!SELECTED_FILE!.backup" >nul 2>&1 echo Backup created: !SELECTED_NAME!.backup ) echo Deleting line %DEL_LINE%... REM Create new file without the specified line set CURRENT_LINE=0 (for /f "delims=" %%a in (!SELECTED_FILE!) do ( set /a CURRENT_LINE+=1 if not !CURRENT_LINE!==%DEL_LINE% echo %%a )) > "!SELECTED_FILE!.tmp" move /y "!SELECTED_FILE!.tmp" "!SELECTED_FILE!" >nul echo. echo [OK] Line %DEL_LINE% deleted successfully! echo. pause goto FILE_MENU :DELETE_FILE cls echo ======================================== echo Delete !SELECTED_NAME! File echo ======================================== echo. echo WARNING: This will delete the entire !SELECTED_NAME! file! echo. set /p CONFIRM="Are you sure? (Y/N): " if /i not "%CONFIRM%"=="Y" ( echo Operation cancelled. pause goto FILE_MENU ) echo. set /p BACKUP="Create backup before deletion? (Y/N): " if /i "%BACKUP%"=="Y" ( copy "!SELECTED_FILE!" "!SELECTED_FILE!.backup" >nul 2>&1 echo Backup created: !SELECTED_NAME!.backup ) del /f "!SELECTED_FILE!" >nul 2>&1 echo. echo [OK] !SELECTED_NAME! file deleted! echo. pause goto MENU :EXIT cls echo Exiting... timeout /t 1 /nobreak >nul exit