none
Ajuda com o comando "FINDSTR" em um arquivo BAT. RRS feed

  • Pergunta

  • Ola senhores(as) ! 

    Tenho em uma estacão na minha rede, arquivos de texto que são gerados por um aplicativo em um diretório compartilhado oculto: (\\nomedopc\pdv$\mfd\ ). Estes *.txt têm a seguinte 1ª linha: 
    "010000 2013050615403200109653290000147MFD000331000361201405012014053107.03.05AC1704 01.00.00" 

    Nesta linha contém sempre uma sequência de texto que refere-se a faixa de datas de forma invertida que no exemplo é essa "2014050120140531". 

    Já consegui fazer com que um arquivo que criei em BAT, utilizando o FINDSTR /M, localize arquivos *.txt e imprima pra mim na tela os os nomes dos arquivos que contém esta ocorrência (2014050120140531). 

    Mas eu queria que estes arquivos quando localizados pelo FINDSTR /M, fossem copiados para meu computador (servidor) pela rede.

    O BAT que eu fiz foi o seguinte: 

    echo off
    echo Copiando... Aguarde.
    setlocal enabledelayedexpansion

    SET ORIGEM=\\nomedopc\pdv$\mfd\*.txt
    SET DESTINO=C:\backup

    FOR /F "delims=" %%a in ('dir /b %ORIGEM%') do (
    TYPE NUL 
    TYPE "%%~a" | findstr "2014050120140531" > nul 2>&1 
    IF !ERROLEVEL! equ 0 xcopy /y /z "%%~a" "%DESTINO%"
    )

    echo COPIA CONCLUIDA COM SUCESSO.
    echo.
    pause

    ... só que ele copia TODOS os arquivos *.txt que está no diretório não respeitando a string que defini.

    Então, qual seria o comando correto para isso? 

    Antecipadamente agradecido as opiniões ! ;-)




    quarta-feira, 29 de outubro de 2014 22:41

Respostas

  • Caro Prompt de Comando Souza,

    Pelo que entendi você lê todos os arquivos e procura em cada um a string especifica.

    Tentei fazer algo diferente, usando findstr pra procurar dentro dos arquivos de uma pasta e então copiar para outra.

    SET ORIGEM=\\nomedopc\pdv$\mfd\*.txt
    SET DESTINO=C:\backup
    
    FOR /F "delims=" %%a in ('findstr /M /I "2014050120140531" %ORIGEM%') do ( xcopy /y /z "%%a" %DESTINO% )

    Tirei também um "~" que estava no xcopy, não sei se isso ajuda ou atrapalha.


    Fábio de Paula Junior


    quinta-feira, 6 de novembro de 2014 19:18
    Moderador