«

»

Jan 21 2008

Print this Post

Criar arquivos no DOS/Windows com DATA

Algumas vezes é necessário utilizar o Windows, e algumas dessas vezes, é necessário automatizar algumas tarefas.

Vou resumir: Imagine que você possui um arquivo de LOTE (.BAT), e nesse arquivo você precisa por exemplo criar uma pasta ou um arquivo que contenha a data do dia.

Isso pode ser automatizado da seguinte maneira.


md NOME-PASTA_%date:~4,220080121:~7,220080121:~12,2%

O exemplo acima, pode ser implmentado facilmente em um script de backup.

Permanent link to this article: http://www.brunorusso.eti.br/brusso-2/criar-arquivos-no-doswindows-com-data

8 comments

  1. Gian

    Depois que faço o backup eu quero que o mesmo bat mova o arquivo que ele criou com a data ao invés do nome.
    Por exemplo:
    echo
    xcopy /y “C:\pasta” “C:\detino”
    winrar a ARQUIVOCOMPACTADO “c:\destino”
    move “C:\destino\*.rar” “C:\pasta”

    como vou colocar a sua variavel para ele mover o arquivo *.rar com a data que eu criei!!!!

    Obrigado

  2. brusso

    Gian,

    você tentou utilizar o seguinte comando:

    cp C:\NOME-PASTA_%date:~4,220080121:~7,220080121:~12,2% D:\

    Acredito que isso resolva o seu problema.

  3. Gian

    Esse é um bat de backup, mas na hora que eu crio o arquivo Backup.rar eu queria mudar ele de pasta mas ao invés de o nome Backup.rar queria que fosse a data.
    Por exemplo: 18_12_2008.rar

    echo
    Title Backup
    color b
    :ini
    echo. —————————————————————
    echo.
    echo.
    echo. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    echo. @ INICIANDO O BACKUP DOS ARQUIVOS @
    echo. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    echo.
    echo.
    echo. —————————————————————
    :aff
    xcopy /e /h /g /c /y “C:\pasta” “C:\destino”
    winrar a Backup “C:\destino”
    md “C:\pasta_%date%”
    move /y C:\*.rar C:\pasta
    cd C:\
    cd destino
    rd /s /q “C:\destino”
    cd C:\
    pause

    a parte que vc me falou eu tentei usar, mas diz que não é reconheçido como um comando interno.
    usando md “C:\pasta_%date%” ele cria a pasta 18, depois a pasta 12 e a pasta 2008 uma dentro da outra.

    se acaso precisar saber como usei o winrar eu colo o winrar.exe na pasta C:\Windows\System32

    Por favor, ve se tem algum jeito de eu fazer isto.

    Obrigado desde já pela sua boa vontade.

  4. Jeffy

    Gian, não se vc ja resolveu seu problema mencionado de backup, mas se vc utilizar o comando:

    md NOME_PASTA_%date:/=-%
    ele vai criar uma pasta com NOME_PASTA_DD-MM-AAAA, trocando as barras que estavam ocasionando o problema na criação da pasta pelo hifen.

  5. Gian

    Muito bom isso Jeffy, ajudou bastante, mas eu consegui pelo winrar mesmo, pois pesquisei e vi que no Winrar tem uma linha completa de comandos, por exemplo quando quero criar um arquivo com data.

    (exect)(Compacta) (Data mes e ano)(Nome do arq)(Local p/comp)
    WinRAR a -ag–dd-mm-yyyy Backup “C:\Nova Pasta”

    Muito obrigado pela atenção mesmo!!!!!

    “A informação é a fonte do conheçimento”

  6. Alexandre

    Caros …

    Estou tentando executar o seguinte comando usando o que foi proposto aquí , mais ele está gerando além da pasta com a data , uma outra pasta com o dia da semana , como corrigir isto ? além do que não consegue copiar o arquivo de backup para dentro dela , alguém poderia ajudar ?

    Segue o comando :

    set nomepasta=%date:/=-%
    md C:\BackACDL\backups\%nomepasta%
    set nomepasta=%date:/=-%
    copy C:\BackACDL\bancoAC\*.* C:\BackACDL\backups\%nomepasta%
    pause

  7. Diego

    Acho que não é a forma masi eficaz mas isso aqui resolve

    set nomepasta=%date:/=-%
    MD C:\BackACDL\backups\%nomepasta%
    RD dom
    RD seg
    RD ter
    RD qua
    RD qui
    RD sex
    RD sab
    set nomepasta=%date:/=-%
    copy C:\BackACDL\bancoAC\*.* C:\BackACDL\backups\%nomepasta%
    pause

  8. lucas

    Usando %date:/=-% grava com o dia da semana (seg, terc, …) agora se vc usar “date:/=-%” (com aspas), grava com a data completa ex. 17-09-2010.
    Se quiser gravar com hora basta acrescentar “%time::=-%”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>