quinta-feira, 24 de fevereiro de 2011

Renomear arquivo sequencialmente com .bat

Este tópico surgiu a partir de uma necessidade de um leitor.


"Olá, tenho uma situação parecia e gostaria de saber se pode me ajudar. Tenho um arquivo que é gerado dentro de uma pasta sempre que um usuario do meu sistema dispara um processo. Este arquivo é importado diariamente pelo operador noturno para outro sistema, porem existem casos em que é necessaria a geraçao deste arquivo mais de uma vez por dia e o sistema sobreescreve o arquivo anterior sempre que é gerado um novo arquivo. Assim preciso de um batch que renomeie os arquivos sequencialmente, por exemplo, arquivo001.txt, arquivo002.txt, arquivo003.txt e assim sucessivamente. Este batch seria disparado por uma tarefa agendada a cada 5 minutos durante o dia, ou melhor ainda se pudesse ficar ativo o tempo todo no servidor monitorando a pasta de destino e renomeando os arquivos conforme fossem gerados. Enfim se puder me ajudar ficarei grato. Att Marco Aurelio."


Não sei se existe um jeito de guardar uma variável no próprio sistema, então pensei em guardá-la em um TXT, e através do .BAT ler esse arquivo e incrementar o valor da variável. Depois um outro Bat ao final do dia Escreveria novamente o valor 1 neste arquivo.


Pensei em criar um arquivo chamado VARIAVEL.TXT que armazenaria a variável do numero, ele começaria com o conteúdo "1"

Teríamos também um arquivo DOS com os seguintes comandos.



Linha 1 - Onde ele lê o arquivo VARIAVEL.TXT e armazena o conteúdo na variável "var"
Linha 2 - Elimina os espaços na variável(não sei porque, mas quando ele lê o arquivo, adiciona um espaço no final e atrapalha a segunda execução do arquivo.
Linha 3 - Renomeia o arquivo
Linha 4 - Cria a variável "nova" que é a "var"+1
Linha 5 - Imprime a variável na tela e escreve ela no arquivo.

Bem, mas creio que até o momento só vai funcionar se existir o arquivo TESTE.TXT, caso não exista o arquivo com este nome, ocorrerá um erro e o BAT deixará de ser executado na linha 3.


E também para voltar a contagem para um, um outro BAT pode substituir esse arquivo pelo arquivo com o texto 1, com um comando.


copy 1.txt variavel.txt


 Qualquer dúvida estamos aqui !

facebook

Postagens populares