This question is nearly identical to Delete *.* excluding some extensions, except you want to delete from the sub-directories as well. Either of the following adaptations of the top two answers should work.
Both of the following assume your batch script is not in the folder hierarchy that is getting deleted.
@echo off
for /f %%F in ('dir /s /b /a-d "yourDirPath\*"^| findstr /vile ".avi, .mkv, .mp4"') do del "%%F"
.
@echo off
setlocal EnableDelayedExpansion
set "exclude=.avi.mkv.mp4."
for /r "yourDirPath" %%F in (*) do if /I "%exclude%" == "!exclude:%%~xF.=!" del "%%F"
If your script is in the hierarchy, then an extra IF statement will fix the problem.
@echo off
for /f %%F in ('dir /s /b /a-d "yourDirPath\*"^| findstr /vile ".avi, .mkv, .mp4"') do if "%%~fF" neq "%~f0" del "%%F"
.
@echo off
setlocal EnableDelayedExpansion
set "exclude=.avi.mkv.mp4."
for /r "yourDirPath" %%F in (*) do if /I "%exclude%" == "!exclude:%%~xF.=!" if "%%~fF" neq "%~f0" del "%%F"