Os comandos del e erase ficarão em silêncio, a menos que você inclua o argumento / s para excluir todos os arquivos em todos os subdiretórios.
Uma opção é simplesmente excluir os arquivos, um por um. Digamos que você queira excluir tudo na pasta temp:
for /f "tokens=*" %A in ('dir /s /b "%TEMP%"') do del /Q "%A"
Isso demorará um pouco para começar a usar 2 milhões de arquivos, pois será necessário listá-los primeiro e depois excluí-los um a um.
Outra opção é usar o Robocopy e fazer com que ele espelhe um diretório vazio para excluir os arquivos desejados. Você obterá uma saída detalhada à medida que cada arquivo for excluído. Comece com um diretório vazio (c: \ empty) e execute algo semelhante ao seguinte:
robocopy c:\empty c:\dir_with_files_to_be_deleted *files_you_want_to_delete.* /mir /v
Ou, se você quiser apenas excluir todos os arquivos em um único diretório:
robocopy c:\empty c:\dir_to_empty /mir /v