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

(Resolvido) Ajuda VBScript


Mike Assis

Pergunta

Ola pessoal

sou novo no fórum e preciso de uma ajuda

tenho um VBScript q serve para pegar alguns Status em arquivos de Log TxT e criar um contador para cada Status

porém só consegui fazer com que funcione especificando o nome do arquivo

gostaria de saber se tem alguma função do tipo Dir para ler todos os arquivos do diretório

O padrão do conteudo dos logs é:

OIBM9Y1|DOMAIN;LOGIN;APPLICATION;INCLUIR;1

OIBM9Y1|DOMAIN;LOGIN;APPLICATION;INCLUIR;2

sendo o ultimo campo após o ";"(1, 2) o status do Log

meu código ficou assim

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\temp\teste\TextToRead.txt", 1)
Do Until objFile.AtEndOfStream
strCharacters = objFile.Read(2)
CopyCaracter = strCharacters

Select Case CopyCaracter 
Case ";1"
AppAdd = AppAdd + 1 
Case ";2"
AppRem = AppRem + 1 
Case ";3"
AppNotFind = AppNotFind + 1 
Case ";4"
UserNotFind = UserNotFind + 1 
Case ";5"
UserAccRepeat = UserAccRepeat + 1 
Case ";7"
UnknownError = UnknownError + 1
End Select 
Loop

porém ele só le o arquivo "C:\temp\teste\TextToRead.txt" e não o diretório "C:\temp\teste\".

já tentei mudar para "C:\temp\teste\*.txt" porém não tive sucesso

Desde já

Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
tenho um VBScript q serve para pegar alguns Status em arquivos de Log TxT e criar um contador para cada Status

porém só consegui fazer com que funcione especificando o nome do arquivo

gostaria de saber se tem alguma função do tipo Dir para ler todos os arquivos do diretório

Set objFile = objFSO.OpenTextFile("C:\temp\teste\TextToRead.txt", 1)

voce deve criar uma lista com o nome os arquivos .... depois voce lê essa lista um a um e substitu o comando por uma vriavel que vai receber o nome da lista

exemplo:

Set objFile = objFSO.OpenTextFile("C:\temp\teste\"+ArqText, 1)

onde ArqText vai receber cada um dos nomes dos arquivos .... monte uma rotina para ler todos os nomes dessa lista.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

É muito simples maninho, basta inserir um objeto que retorne a pasta onde estão seus arquivos e usar um For...Next pra retornar o nome de cada um deles. ai você executa o loop em todos os arquivos.

O código fica assim:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\temp\teste")
For Each File in objFolder.Files[/b]
     Set objFile = objFSO.OpenTextFile("C:\temp\teste\" & File.name, 1)
     Do Until objFile.AtEndOfStream
          strCharacters = objFile.Read(2)
          CopyCaracter = strCharacters

          Select Case CopyCaracter 
               Case ";1"
                    AppAdd = AppAdd + 1 
               Case ";2"
                    AppRem = AppRem + 1 
               Case ";3"
                    AppNotFind = AppNotFind + 1 
               Case ";4"
                    UserNotFind = UserNotFind + 1 
               Case ";5"
                    UserAccRepeat = UserAccRepeat + 1 
               Case ";7"
                    UnknownError = UnknownError + 1
          End Select 
     Loop
Next

Creio que isso resolva seu problema.

Espero ter ajudado...

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,9k
×
×
  • Criar Novo...