none
Criar Batch com a data do dia RRS feed

  • Pergunta

  • Estou tentando criar uma batch para unificação de vários arquivos txt, mas gostaria que o arquivo finalizado tivesse a data do dia da execução do batch de forma automática (sem eu ter que nomear ou renomear):

    ex.  quero juntar os txt 001, 002, 003, 004, 005 e o arquivo produto dessa junção fosse 091020.txt

    Alguém saberia me dizer como fazer?

    sexta-feira, 9 de outubro de 2020 18:08

Todas as Respostas

  • Boa tarde,

    Tente assim:

    copy 0*.txt arquivos_Consolidado%date:~6,4%%date:~3,2%%date:~0,2%.txt

    Após o copy coloquei para localizar todos arquivos textos que iniciam com 0(zero), você altera conforme sua necessidade. Depois .txt é nome do arquivo (após a unificação + a captura da data do sistema).
    • Editado Edvaldo A sexta-feira, 9 de outubro de 2020 19:42 ;
    sexta-feira, 9 de outubro de 2020 19:38
  • Olá amigo, veja qual desses você prefere, a versão 01 coloca o texto tudo junto um do outro e a versão 02 coloca o nome do arquivo de onde veio o texto e depoois o texto:

    Versão 01

    Versão 02

    Download



    R. Bohner

    sexta-feira, 9 de outubro de 2020 21:09
  • Ricardo, boa tarde.

    Baixei a versão 1 e foi a que melhor atendeu a minha necessidade, no entanto, sem querer abusar, mas vc poderia me informar como:

    1 - retirar as linhas em branco (qdo junto vários txt, o bat deixa uma linha em branco entre em texto e outro)?

    2 - vc poderia me explicar esse código (se possível pois gostaria de entender e aprender)

    Mais uma vez, valeu mesmo pela ajuda.

    sábado, 10 de outubro de 2020 20:32
  • Olá na versão 01 ele não deveria criar linhas em branco entre cada texto de arquivo há não ser se existem linhas em branco nos arquivos originais ai sim. Já na versão 02 as linhas em branco entre cada texto de arquivo são intencionais para poder identificar melhor de qual arquivo original veio cada texto.

    Bem se você quer começar a aprender shell script no Windows eu recomendo o powershell que é mais moderno os scripts em batch já está meio defasados porque já existem desde os anos 80.

    @echo off:

    Esse comando desabilita algumas mensagens que são exibidas na tela por alguns comandos

    chcp 1252 > nul

    Esse comando muda para a pagina de codificação de texto 1252 Oeste Europeu Latino, que faz com que nossos acentos funcionem prompt como ã é í õ o sinal > (maior do que envia a mensagem de sucesso algo como "Página de código ativa: 1252" para o "buraco negro do prompt" tudo que é enviado para o "buraco negro "nul" desaparece.

    :: Informe a Pasta onde estão os arquivos TXT:
    Set Pasta=

    Os sinais de :: ou REM são comentários e não são executados. Com "set NomeDaVariavel=Minha Pasta" você define uma variável e coloca o valor após o sinal de igual dentro dessa variável no caso a variável NomeDaVAriavel tem o valor de "Minha Pasta" que fica armazenado dentro dela.

    cd "%Pasta%"

    cd (Change Directory) muda para um diretório especifico no caso o que tiver armazenado na variável Pasta, a variável entre sinais de porcentagem retornam o valor da variável.

    set "Data=%Date%"

    Coloca a data atual dentro da variável Data

    set "Data=%Data: =0%"

    Muda os espaços do valor da variável Data para 0 por exemplo se o valor da variável Data for igual a " 9/10/2020" ele passa a ser "09/10/2020"

    set "Data=%Data:/=%"

    Remove as barras do valor da variável data por exemplo "09/10/2020" passa a ser "09102020"

    For %%a in (*.txt) do Type "%%a">>"%Data%.txt" & Echo. >>"%Data%.txt"

    Esse for vai executar uma ação especifica para cada arquivo TXT que existir no diretório atual, no caso ele salva o conteúdo de cada arquivo em 09102020.txt colocando uma linha em branco após o conteúdo de cada arquivo com o comando & Echo.


    R. Bohner

    sábado, 10 de outubro de 2020 22:28