none
Alterar o nome de um arquivo via bat schedulado RRS feed

  • Pergunta

  • Recebo todos os dias um arquivo para ser processado em um software de TEF. O nome do arquivo recebido é log_20110427.txt onde 2011 é o ano atual, 04 é o mês atual e 27 o dia atual. Preciso alterar o nome deste arquivo auitomaticamente todos os dias as 07:00 horas da manhã, através de um scheddule no servidor, copiando este arquivo no mesmo local mas alterando o nome do arquivo para log_1116.txt onde 11 é o mes atual e 16 é o dia atual. Como fazer a cópia deste arquivo rodando uma bat schedullada alterando o nome do arquivo ??? Alguém pode me ajudar ??

    Caso alguém tenha alguma bat que faça este processo, poderiam enviar ao meu email, por favor ???   jgorni@hotmail.com

     

    Obrigado


    quarta-feira, 16 de novembro de 2011 13:38

Respostas

  • Não entendi bem, vc quer que renomeie mantendo a base da data do proprio arquivo ou a data de execução da renomeação?

    Se for como base a data do proprio arquivo renomearia assim:
    log_20110427.txt  >>  log_0427.txt

     

    Se for a data de renomeação, ficaria assim (exemplo sendo executado dia 17/11/2011):
    log_20110428.txt  >>  log_1117.txt

    Qual das duas opções vc precisa? se for a primeira utilize este script em PowerShell (.ps1)

    $DIR = 'C:\TESTE'
    
    $FILES = DIR "$DIR\log_????????.txt" | WHERE {$_.psIsContainer -eq $false} 
    
    Foreach ($f in $FILES){
        $a=$f.Name
        $Novo_Nome = $a.substring(0,4)+ $a.substring(8,8)
        
        copy-Item $f.fullname "$DIR\$Novo_Nome" -force
    }

     


    Fábio de Paula Junior


    quinta-feira, 17 de novembro de 2011 19:07
    Moderador

Todas as Respostas

  • Não entendi bem, vc quer que renomeie mantendo a base da data do proprio arquivo ou a data de execução da renomeação?

    Se for como base a data do proprio arquivo renomearia assim:
    log_20110427.txt  >>  log_0427.txt

     

    Se for a data de renomeação, ficaria assim (exemplo sendo executado dia 17/11/2011):
    log_20110428.txt  >>  log_1117.txt

    Qual das duas opções vc precisa? se for a primeira utilize este script em PowerShell (.ps1)

    $DIR = 'C:\TESTE'
    
    $FILES = DIR "$DIR\log_????????.txt" | WHERE {$_.psIsContainer -eq $false} 
    
    Foreach ($f in $FILES){
        $a=$f.Name
        $Novo_Nome = $a.substring(0,4)+ $a.substring(8,8)
        
        copy-Item $f.fullname "$DIR\$Novo_Nome" -force
    }

     


    Fábio de Paula Junior


    quinta-feira, 17 de novembro de 2011 19:07
    Moderador
  • Olá amigos,

    estou com um problema parecido.

    Preciso renomear um arquivo todos os dias com a data corrente seguindo o padrão:

    arquivoABCD_AAAAmmDD.txt   (exemplo: arquivoABCD_20120416.txt) .

    O sistema operacional é o Windows Server 2008.

    Podem me ajudar com um script para isso ?

    tks,

    Everson




    segunda-feira, 16 de abril de 2012 09:40