none
Ajuda com script Batch "FOR /F %%i IN" RRS feed

  • Pergunta

  • Eu tenho um script de backup que acabei fazendo com referencia de vários outros  encontrados pela internet, a cada necessidade fui modificando até chegar no que utilizo hoje.

    cd "C:\data"
    FOR /F %%i IN ('DIR /B /O:-D *.log') DO (
    copy "%%i" Z:\segunda\relatorio.log

    ele entra na pasta onde são gerados os arquivos de log, lê o arquivo mais recente de dentro desse diretório e copia para o outro diretório.

    estou tentando enxuta um pouco esse script.

    então vamos lá o comando DIR /B /O:-D c:\data\*.log no cmd funciona normalmente ele me lista os arquivos. mas colocando o caminho no comando ele não funciona e não apresenta nenhuma mensagem de erro. ele executa e não faz a copia

    FOR /F %%i IN ('DIR /B /O:-D "C:\data\*.log"') DO (
    copy "%%i" Z:\relatorio.log

    procurei em todo lugar como tentar resolver esse pequeno problema e não consigo. essa parte do FOR é meio complicado para minha cabeça kkk

    será que alguém consegue me ajudar nisso




    sexta-feira, 3 de outubro de 2014 15:08

Respostas

  • Mauricio,

    Primeiramente veja se o FOR está executando, eu testei ele assim.

    FOR /F %%i IN ('DIR /B /O:-D "C:\data\*.log"') DO ( echo %%i)
    pause

    Funcionou!! Ele listou o nome dos arquivos .log da pasta c:\data.

    "Segundamente", veja se o copy está funcionando, vc está copiando assim:

    copy <nomearquivo> z:\relatorio.log
    Isso só vai funcionar se o diretório corrente for o data.


    Fábio de Paula Junior

    sexta-feira, 3 de outubro de 2014 16:37
    Moderador

Todas as Respostas

  • Mauricio,

    Primeiramente veja se o FOR está executando, eu testei ele assim.

    FOR /F %%i IN ('DIR /B /O:-D "C:\data\*.log"') DO ( echo %%i)
    pause

    Funcionou!! Ele listou o nome dos arquivos .log da pasta c:\data.

    "Segundamente", veja se o copy está funcionando, vc está copiando assim:

    copy <nomearquivo> z:\relatorio.log
    Isso só vai funcionar se o diretório corrente for o data.


    Fábio de Paula Junior

    sexta-feira, 3 de outubro de 2014 16:37
    Moderador
  • Mauricio,

    Primeiramente veja se o FOR está executando, eu testei ele assim.

    FOR /F %%i IN ('DIR /B /O:-D "C:\data\*.log"') DO ( echo %%i)
    pause

    Funcionou!! Ele listou o nome dos arquivos .log da pasta c:\data.

    "Segundamente", veja se o copy está funcionando, vc está copiando assim:

    copy <nomearquivo> z:\relatorio.log
    Isso só vai funcionar se o diretório corrente for o data.


    Fábio de Paula Junior

    A primeira parte normal ele lista os arquivos,  já a segunda ele não copia da lista para a pasta de destino.

    e pelo que to vendo nem vai adiantar muito pois o próximo comando eu tenho que especificar a pasta pois ele chama um programa e pra cada servidor que eu for usar pode ser que a pasta mude


    sexta-feira, 3 de outubro de 2014 19:29