O comando dir não possui um comutador ou opção para descartar extensões.
Isso pode ser feito processando a saída de dir /b em um loop for /f .
(del list.txt 2>nul) & for /f %f in ('dir /a /b /o:gen') do @echo %~nf >>list.txt
Se você não se preocupa com subdiretórios ou arquivos do sistema / ocultos (para os quais o dir /a serve), então um for normal também funcionaria.
(del list.txt 2>nul) & for %f in (*) do @echo %~nf >>list.txt
Execute dir /? , del /? e for /? para obter mais detalhes sobre a sintaxe e as alterações.