@echo off & setlocal enableextensions
::
if "%~1"=="" (
echo Usage: %~0 .extension
goto :EOF
)
set ext_=%~1
::
echo %ext_%|find "=" > nul
if %errorlevel% EQU 0 (
echo Equal signs not allowed for safety reasons in %ext_%
goto :EOF
)
::
for /f "tokens=2 delims==" %%a in (
'assoc^|find /i "%ext_%"') do set assoc_=%%a
echo %ext_% %assoc_%
::
if defined assoc_ (
reg query HKLM\SOFTWARE\Classes\%assoc_%|find "REG_SZ"
echo.
reg query HKLM\SOFTWARE\Classes\%assoc_%\shell|find "shell\"
echo.
for /f "tokens=1* delims==" %%a in ('assoc %ext_%') do ftype %%b
) else (
echo No association)
::
endlocal & goto :EOF
The output might be e.g.
C:\_D\TEST>cmdfaq .html
.html FirefoxHTML
AlwaysShowExt REG_SZ
<NO NAME> REG_SZ HTML Document
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FirefoxHTML\shell\Edit_with_Notepad
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FirefoxHTML\shell\open
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FirefoxHTML\shell\Open_with_Mozilla
FirefoxHTML=C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -url "%1"
C:\_D\TEST>cmdfaq .dir
.dir
No association