Retorna para a página principal urs.bira

Fonte do arquivo .bat

urs.bira@uol.com.br

Imprimir esta página Home page de Ubiratan Voltar à página anterior

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