Sempre foi uma limitação do MS-DOS quando desejávamos fazer por exemplo uma rotina de backup que criasse um arquivo desse.
Mas no Windows XP há as "Extensões de Comando" que aumentaram muito os recursos dos comandos do antigo MS-DOS.
Segue um arquivo .bat que montei para que através do MS-DOS possa-se criar um arquivo em cujo nome haja a data e hora.
Nele utilizo os avanços disponibilizados no comando [date] que passou a permitir mostrar a data sem alterá-la e do comando
[set] que permite selecionar trechos de variáveis, Você pode ver como funcionam digitando no [prompt de command] date /? e set /?.
@echo off cls rem atuar.bat : Copia arqs NOMEAAMMDDHHMINSEG.EXT de origem p/ Destino lendo a data atual rem Criado por: urs.Bira (urs.bira@uol.com.) rem Data......: 16/03/2006 rem esta variável defini o começo do nome do arquivo set nome=BIRA rem esta variável define a extensão do arquivo set extensao=URS set origem=c:\download\ set destino=z:\util\prg\ rem Aqui a variável ursbira fica com o valor da data set ursbira=%date% rem Variável que irá verificar se a data tem ou não o nome do dia da semana no início set versao=%ursbira:~2,1% rem Mostra um caceçalho echo Preparando para copiar arquivos ( %ursbira% ) rem Se o comando date mostra o dia da semana antes da data if not "%versao%"=="/" goto versao1 rem Se o comando date NÃO mostra o dia da semana antes da data if "%versao%"=="/" goto versao2 goto erro rem abaixo coloquei duas das opções de como o comando date /t mostra a data, você tem que executar o comando date /t rem e ver como a data aparece no micro em que você vai usar este .bat por exemplo: rem date /t pode mostrar a data como: rem qui 06/04/06 rem qui 06/04/2006 rem 06/04/06 rem 06/04/2006 :versao1 rem Quando date /t retorna: qui 06/04/06 echo Copiando arquivos usando a Versao1 rem definicao de variaveis para Windows 2000 rem o commando date /t mostra o nome do dia da semana antes da data rem Define a variável ano como sendo os dois últimos caracteres da data set ano=%ursbira:~12,2% rem Define mes como sendo o oitavo e o nono caracteres da data set mes=%ursbira:~7,2% rem Define dia como sendo os dois primeiros caracteres após o nome do dia da semana da data set dia=%ursbira:~4,2% goto copiar :versao2 rem Quando date /t retorna: 06/04/06 (somente a data) echo Copiando arquivos usando a Versao2 rem definicao de variaveis para Windows XP rem usar estes sets quando o resultado do comando ver for: rem Microsoft Windows XP exemplo da [versão 5.1.2600] rem Define a variável ano como sendo os dois últimos caracteres da data set ano=%ursbira:~8,2% rem Define mes como sendo o oitavo e o nono caracteres da data set mes=%ursbira:~3,2% rem Define dia como sendo os dois primeiros caracteres após o nome do dia da semana da data set dia=%ursbira:~0,2% goto copiar :copiar rem Define a variável horario com o valor da hora set horario=%time% rem Define a variável hh como os dois primeiros caracteres da hora (hora) set hh=%horario:~0,2% rem Define a variável mm como o quarto e quinto caracteres da hora (minuto) set mm=%horario:~3,2% rem Define a variável ss como os últimos caracteres da hora (segundo) set ss=%horario:~6,2% rem Após essas definições a variável hoje ficará com o nome definido na variável nome mais ANO MES DIA HORA MIM e SEG rem Ai você pode mudar à vontade, por exemplo deixando somente ano e mes e sem extensão: set hoje=%nome%%ano%%mes% set hoje=%nome%%ano%%mes%%dia%%hh%%mm%%ss%.%extensao% rem Daqui para baixo você monta o arquivo com o que você deseja fazer com ele rem na linha abaixo estou colocando uma mensagem caso o arquivo não exista na origem rem na linha seguinte, caso ele exista na origem ele sera copiado de origem para destino rem na linha seguinte apenas exibe o nome dele if not exist %origem%%hoje% echo O arquivo %hoje% nao foi localizado if exist %origem%%hoje% copy %origem%%hoje% %destino% echo %hoje% goto fim :erro echo Data nao identificada pause goto fim :fim rem Apagando as variaveis utilizadas set nome= set extensao= set origem= set destino= set ursbira= set versao= set horario= set ano= set mes= set dia= set hh= set mm= set ss= set hoje= rem -------------- Fim do arquivo .bat