Formatar data e hora em um script em lotes do Windows

Em um script em lote do Windows (Windows XP), preciso formatar a data e a hora atuais para uso posterior em nomes de arquivos, etc.

É semelhante à pergunta de estouro de pilhaComo anexar uma data em arquivos em lote, mas com o tempo também.

Eu tenho isso até agora:

echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%

que dá:

28/07/2009
 8:35:31.01
2009_07_28__ 8_36_01

Existe uma maneira que eu possa permitir uma hora de dígito único em% TIME%, para que eu possa obter o seguinte?

2009_07_28__08_36_01

questionAnswers(30)

yourAnswerToTheQuestion