Ir para conteúdo
Fórum Script Brasil
  • 0

Usando .BAT para pegar um arquivo recente para inspecionar.


Wesley Venancio

Pergunta

Olá pessoal! 

Estou tentando usar BAT para fazer uma tarefa da seguinte forma: Ele lê um arquivo, procura uma caractere especifico nas ultimas 2 linhas, se encontrou ele abre uma mensagem e grava em txt um arquivo com as 2 ultimas linhas que ele encontrou.

Eu já tenho um código que faz isso e já uso algum tempo, mas agora o software que gera esse arquivo que preciso ler, ele muda de nome todo o dia com o mês e dia que está gravando. (MM_04_DD_13.csv)

O que eu preciso é que ele pegue o arquivo mais recente e leia para achar o caráter especifico.

Por favor vocês podem me ajudar?  

@echo off

SetLocal EnableDelayedExpansion

:: Informe aqui o local do arquivo onde quer copiar as últimas 20 linhas:
set Arquivo=C:\Users\we\Desktop\Ler nok na 30\MM_04_DD_13.csv

:: Informe a quantidade de linhas que você quer:
set Linhas=2

:: Informe um termo D pesquisado:
set Termo=N

::Informe o arquivo onde vai ser armazenado o resultado
set Resultado=Ocorrência de NOK.txt

::Informe Informe o Limite da quantidade do termo pesquisado para receber uma mensagem
set LimiteTermo=1

for /f %%a in ('type "%Arquivo%" ^|find /i /v /c ""') do set LinhasTotal=%%a

set /a LinhasSubtraidas=%LinhasTotal% - %Linhas%

more +%LinhasSubtraidas% "%Arquivo%">"%Resultado%"

for /f "usebackq delims=" %%a in ("%Resultado%") do (
set Entrada=%%a
call :ProcuraTermo
)
chcp 1252 > nul
IF %QuantidadeTermo% GTR %LimiteTermo%  MSG * Atenção^^! VERIFICAR SE ALGUMA ESTAÇÃO ESTÁ DESATIVADA"
echo.
 

:ProcuraTermo
set "Tempo=!Entrada:~%Contador%,1!"
IF "%Tempo%"=="%Termo%" set /a QuantidadeTermo+=1
IF /i not Defined Tempo (
                         set Contador=0
                         goto :EOF
                        ) Else (
                                set /a Contador+=1& goto :ProcuraTermo)

:EOF
 

   

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Se eu entendi sua questão direito acredito que seja algo assim:

@echo off

for /f "delims=" %%a in ('dir /b /a-d /s /o-d "C:\Users\we\Desktop\Ler nok na 30\*"') do (
                                                                                          set Arquivo=%%a
                                                                                          goto :Next
                                                                                         )
:Next

SetLocal EnableDelayedExpansion

:: Informe a quantidade de linhas que você quer:
set Linhas=2

:: Informe um termo D pesquisado:
set Termo=N

::Informe o arquivo onde vai ser armazenado o resultado
set Resultado=Ocorrência de NOK.txt

::Informe Informe o Limite da quantidade do termo pesquisado para receber uma mensagem
set LimiteTermo=1

for /f %%a in ('type "%Arquivo%" ^|find /i /v /c ""') do set LinhasTotal=%%a

set /a LinhasSubtraidas=%LinhasTotal% - %Linhas%

more +%LinhasSubtraidas% "%Arquivo%">"%Resultado%"

for /f "usebackq delims=" %%a in ("%Resultado%") do (
set Entrada=%%a
call :ProcuraTermo
)
chcp 1252 > nul
IF %QuantidadeTermo% GTR %LimiteTermo%  MSG * Atenção^^! VERIFICAR SE ALGUMA ESTAÇÃO ESTÁ DESATIVADA"
echo.
 

:ProcuraTermo
set "Tempo=!Entrada:~%Contador%,1!"
IF "%Tempo%"=="%Termo%" set /a QuantidadeTermo+=1
IF /i not Defined Tempo (
                         set Contador=0
                         goto :EOF
                        ) Else (
                                set /a Contador+=1& goto :ProcuraTermo)

:EOF

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...