Вы можете попробовать что-то вроде
for /f "usebackq delims=" %i in (`dir /s /b *`) do if not %~xi==.txt del %i
По вашему вопросу в комментарии вы можете попробовать следующее:
robocopy source_folder target_folder *.java /s
или
xcopy *.java target_folder /s
, которая сохраняет структуру каталогов, но копирует только .java
файлов.