@echo off
setlocal enabledelayedexpansion
title Remove VTFEdit context menu entries
set default_extensions=jpg,jpeg,png,bmp,tga,tiff,psd,gif,eps,webp,bpg,cd5,cpt,kra,mdp,pdn,psp,sai,xcf
:check_elevation
net session >nul 2>&1
if not %errorlevel%==0 echo & echo Error: Must run as administrator. & pause>nul & goto :eof
:: exec for all extensions
for %%E in (%default_extensions%) do CALL :CheckKey %%E
if "%found%"=="" ( echo & echo No entries to remove^^! Exiting.& pause>nul & goto :eof) else ( echo Found entries for^: %found%)
:hintextensions
echo.
echo Please enter file extensions to remove, divided by comma, lowercase, no dots or just press enter for remove ALL
echo.
:askextensions
set /p extensions="What extensions to delete for (default %found%): "
if not "!extensions!"=="" (
set "extensions=!extensions: =!"
for /f "tokens=1 delims=abcdefghijklmnopqrstuvwxyz1234567890," %%A in ('echo !extensions!') do (
set "extensions=%default_extensions%"
echo Warning: input incorrect, will use default setting ^(%found%^)
pause
)
) else ( set "extensions=%found%" )
:: exec for all extensions
for %%E in (%extensions%) do CALL :DelKey %%E
:: results
echo.
echo -------------------------------------------------------
if "!processedcount!"=="" ( echo No entries to remove ) else ( echo !processedcount! entries removed: !processed! )
echo -------------------------------------------------------
echo.
pause & goto :eof
:CheckKey
reg query "HKCR\SystemFileAssociations\.%1\shell\VTFEdit.open">nul 2>&1 && CALL :LogExtFound %1
goto :eof
:DelKey
reg delete "HKCR\SystemFileAssociations\.%1\shell\VTFEdit.open" /f>nul 2>&1 && CALL :LogExtRemoved %1
goto :eof
:LogExtRemoved
if "!processedcount!"=="" ( set "processedcount=1" ) else ( set /a "processedcount=!processedcount!+1" )
if "!processed!"=="" ( set "processed=%1" ) else ( set "processed=!processed!,%1" )
goto :eof
:LogExtFound
if "!foundcount!"=="" ( set "foundcount=1" ) else ( set /a "foundcount=!foundcount!+1" )
if "!found!"=="" ( set "found=%1" ) else ( set "found=!found!,%1" )
goto :eof