none
Dir caso pasta vazia criar log Pasta Ok RRS feed

  • Pergunta

  • Ba Galera

    Estou trabalhando em um scritp que realiza n coisas na estação e uma deles é entrar em 5 pastas diferentes e apagar os arquivos delas, porem gostaria de saber como gerar um log do tipo, ele da um dir na pasta ou alguma outra função, que veja que a pasta esta vazia e crie um log dessa forma

    Log de verificação

    pasta1 = Limpa Ok
    pasta2 = Limpa Ok
    pasta3 = Falha
            Faltou = arquivo1.txt
            Faltou = arquivo2.tmp
            Faltou = arquivo3.dll
    pasta4 = Limpa Ok
    pasta5 = Falha
            Faltou = arquivo1.txt
            Faltou = arquivo2.tmp
            Faltou = arquivo3.dll

    É possivel fazer algo assim galera...

    Abraço.

    quinta-feira, 27 de agosto de 2009 02:09

Respostas

  • Olá,

    Marcelo.... eu testei aqui e funcionou... dá uma olhada no seguinte:

    if strPasta.SubFolders.Count = 0 And strPasta.Files.Count = 0 Then
       OutPutFile.WriteLine "PASTA VAZIA : " & strPasta.path
    Elseif strPasta.Files.Count > 0 Then
       For each subFiles in strPasta.Files
          OutPutFile.WriteLine "ARQUIVO EXISTENTE : " & subFiles.path
       Next
    End if


    Essa parte ele só grava o log se a pasta está vazia (sem arquivos e sem subpastas)

    Altera para verificar só se existe arquivos... e vê se funciona:

    if strPasta.Files.Count = 0 Then
       OutPutFile.WriteLine "PASTA VAZIA : " & strPasta.path
    Elseif strPasta.Files.Count > 0 Then
       For each subFiles in strPasta.Files
          OutPutFile.WriteLine "ARQUIVO EXISTENTE : " & subFiles.path
       Next
    End if




    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Marcelo TI segunda-feira, 31 de agosto de 2009 13:55
    segunda-feira, 31 de agosto de 2009 12:46

Todas as Respostas

  • Olá,

    Verifique o script abaixo:




    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.CreateTextFile("log.txt", True)

    OutPutFile.WriteLine "PASTAS  EM: " & now

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    set FSo = CreateObject("Scripting.FileSystemObject")
    Set objFolder = FSO.GetFolder("C:\teste")
    Set colfolders = objFolder.Subfolders

    For Each objFolder in colFolders

    set folder = FSO.getFolder(objFolder.path)

    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       BuscaArquivo SubFolder
      next
    Else
    BuscaArquivo objFolder.path
    end if

    Next

    OutPutFile.Close
    wscript.quit


    Sub BuscaArquivo(strPasta)
    wscript.echo strPasta

    set strpasta = FSO.GetFolder(strPasta)

    if strPasta.SubFolders.Count = 0 And strPasta.Files.Count = 0 Then
       OutPutFile.WriteLine "PASTA VAZIA : " & strPasta.path
    Elseif strPasta.Files.Count > 0 Then
       For each subFiles in strPasta.Files
          OutPutFile.WriteLine "ARQUIVO EXISTENTE : " & subFiles.path
       Next
    End if

    End Sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 27 de agosto de 2009 11:39
  • Ba tche tudo bem Jeseil

    Cara da forma que ele ta ele usa como referencia o caminho c:\teste para verificar se esta vazia correto criei uma pasta com esse nome e deixei vazia, ai ele cria o log com essa informação:

    PASTAS  EM: 27/08/2009 22:36:40

    E se eu deixar arquivo na pasta ele grava essa informação no log:

    PASTAS  EM: 27/08/2009 22:43:58
    ARQUIVO EXISTENTE : C:\teste\ATARI\ATARI\Elk.bin
    ARQUIVO EXISTENTE : C:\teste\ATARI\ATARI\readnow.htm
    ARQUIVO EXISTENTE : C:\teste\ATARI\ATARI\stella.bmp

    O que pode ser.

    sexta-feira, 28 de agosto de 2009 01:44
  • Olá,

    Não é isso que você precisa???

    Quando a pasta estiver vazia, ele mostra que a pasta está vazia... quando "faltou" algum arquivo ele gera o log "ARQUIVO EXISTENTE" para você saber qual arquivo não foi apagado. Não é isso que você precisa???

    Se não for, poste o que você precisa que eu altero o script.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    sexta-feira, 28 de agosto de 2009 02:15
  • Ba Jesiel

    E isso mesmo porem no log ele nao grava essas palavras como vc colocou no cod PASTA VAZIA, ou seja no log quando tem arquivo ele coloca existe aquivos e quais são, e quando nao tem arquivo ele so coloca pasta em, data e hora mais nao coloca a palavra Pasta vazia.
    compreendeu meu amigo.

    Abraço
    sexta-feira, 28 de agosto de 2009 21:13
  • Ba Jesiel

    Bom dia

    Alguma ideia...

    Não sei se vc compreendeu o que eu quiz dizer...

    Ele gera o log e verifica a pasta..

    Porem quando tem arquivo na pasta..

    Ele grava o log com as informações que vc colocou ou seja data hora + Arquivo Existente.

    Porem quando nao tem arquivo

    Ele grava o log com as informações que vc colou ou seja data hora mais a informação PASTA VAZIA  ele nao grava no log...

    Valeu grande amigo.
    segunda-feira, 31 de agosto de 2009 10:49
  • Olá,

    Marcelo.... eu testei aqui e funcionou... dá uma olhada no seguinte:

    if strPasta.SubFolders.Count = 0 And strPasta.Files.Count = 0 Then
       OutPutFile.WriteLine "PASTA VAZIA : " & strPasta.path
    Elseif strPasta.Files.Count > 0 Then
       For each subFiles in strPasta.Files
          OutPutFile.WriteLine "ARQUIVO EXISTENTE : " & subFiles.path
       Next
    End if


    Essa parte ele só grava o log se a pasta está vazia (sem arquivos e sem subpastas)

    Altera para verificar só se existe arquivos... e vê se funciona:

    if strPasta.Files.Count = 0 Then
       OutPutFile.WriteLine "PASTA VAZIA : " & strPasta.path
    Elseif strPasta.Files.Count > 0 Then
       For each subFiles in strPasta.Files
          OutPutFile.WriteLine "ARQUIVO EXISTENTE : " & subFiles.path
       Next
    End if




    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Marcelo TI segunda-feira, 31 de agosto de 2009 13:55
    segunda-feira, 31 de agosto de 2009 12:46
  • Ba Jesiel.

    Bom dia.

    Rolou cara obrigado.
    segunda-feira, 31 de agosto de 2009 13:55