none
Gerar LOG com arquivo VBS RRS feed

  • Pergunta

  • Olá Amigos,

    Minha duvida é a seguinte:

    Eu tenho um script onde ele faz a cópia de alguns arquivos para um local na rede e também limpa arquivos com mais de 5 dias eu queria que ele gerasse um log toda vez que ele rodasse com data e hora, fiz algumas pesquisas mas não consegui achar nada do tipo,

    Obrigado,


    Código:

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    set FSo = CreateObject("Scripting.FileSystemObject")

    set objFSO = CreateObject("Scripting.FileSystemObject")

    set folder = FSO.getFolder ("D:\SQLBackup\FULL\")

    for each file in folder.files



    if file.DateLastModified < (Now -5) Then

    File.delete

    end if

    next

    objFSO.CopyFile "D:\SQLBackup\FULL\*.*", "\\192.168.0.30\d$\Backup"

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    terça-feira, 18 de outubro de 2016 14:02

Respostas

  • Boa noite Vitor,

    veja se te ajuda, é simples e vc pode usar de várias maneira.

    Teste antes de colocar em produção.

    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("D:\SQLBackup\FULL\")
    Set oLog = FSO.OpenTextFile("D:\Log\LogScript.Log", 8, True)
    sInicio = Now()
    oLog.WriteLine "**** Inicio do Log: " & sInicio
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine Now() & " Executando cópia dos arquivos "
    FSO.CopyFile "D:\SQLBackup\FULL\*.*", "\\192.168.0.30\d$\Backup"
    oLog.WriteLine "**** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close


    att, Aparecido Deveza

    quarta-feira, 19 de outubro de 2016 00:56
  • Aparecido,

    Eu consegui fazer para gerar o log dos arquivos copiados

    ficou assim:

    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("V:\Backup\")
    Set oLog = FSO.OpenTextFile("V:\Log\LogScript.Log", 8, True)
    sInicio = Now()
    oLog.WriteLine "**** Inicio do Log: " & sInicio
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine ""
    oLog.WriteLine "************************************************"
    oLog.WriteLine Now() & " Executando cópia dos arquivos "
    	For each file in folder.files
    		If file.DateLastModified > (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Copiado: " & File
    			FSO.CopyFile "V:\Backup\*.*", "\\192.168.0.109\c$\Teste"
    		End If
    	Next
    
    oLog.WriteLine "**** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close

    Não sei se está certo mas funcionou,

    Se você puder me dizer se está correto, muito obrigado,

    quarta-feira, 19 de outubro de 2016 13:48
  • Boa tarde Vitor,

    Esta certo sim, é válido.

    fiz um outro exemplo, bem parecido com o que vc montou.

    Coloquei a cópia dos arquivos dentro do FOR, como os arquivos com mais de 5 dias já foram deletados, não precisamos verificar novamente.

    Com  "File.Path" que informa o caminho do arquivo executei uma cópia dos arquivo individuais.

    Como não sei como pode ficar o tamanho do Log, fiz uma alteração no nome do arquivo de maneira que ele gere um log com o nome da data e hora que rodou, por exemplo o nome do log é  "19102016_184249.log", então esse é o log do dia 19/10/2016 ás 18:42:49.

    sDateLog =  Replace(Replace(Replace(now,"/",""),":","")," ","_")
    ' Exemplo de data 19102016_184249 = 19/10/2016 18:42:49
    
    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("V:\Backup\")
    Set oLog = FSO.OpenTextFile("V:\Log\"& sDateLog & ".Log", 8, True)
    
    sInicio = Now()
    oLog.WriteLine "***********************************************"
    oLog.WriteLine "******** Inicio do Log: " & sInicio
    oLog.WriteLine "***********************************************"
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine Now() & "***********************************************"
    oLog.WriteLine Now() & "******** Executando cópia dos arquivos ********"
    oLog.WriteLine Now() & "***********************************************"
    	For each file in folder.files
    		oLog.WriteLine  Now() & " Copiando: " & File
    		FSO.CopyFile File.path, "\\192.168.0.109\c$\Teste"
    	Next
    oLog.WriteLine "***********************************************"	
    oLog.WriteLine "******** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close


    att, Aparecido Deveza


    quarta-feira, 19 de outubro de 2016 20:58

Todas as Respostas

  • Boa noite Vitor,

    veja se te ajuda, é simples e vc pode usar de várias maneira.

    Teste antes de colocar em produção.

    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("D:\SQLBackup\FULL\")
    Set oLog = FSO.OpenTextFile("D:\Log\LogScript.Log", 8, True)
    sInicio = Now()
    oLog.WriteLine "**** Inicio do Log: " & sInicio
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine Now() & " Executando cópia dos arquivos "
    FSO.CopyFile "D:\SQLBackup\FULL\*.*", "\\192.168.0.30\d$\Backup"
    oLog.WriteLine "**** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close


    att, Aparecido Deveza

    quarta-feira, 19 de outubro de 2016 00:56
  • Muito Obrigado Aparecido Deveza,

    Exatamente oque eu precisava, testei em minha máquina e funcionou certinho,

    Uma duvida, eu consigo incluir no log os arquivos que foram copiado?

    quarta-feira, 19 de outubro de 2016 12:53
  • Aparecido,

    Eu consegui fazer para gerar o log dos arquivos copiados

    ficou assim:

    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("V:\Backup\")
    Set oLog = FSO.OpenTextFile("V:\Log\LogScript.Log", 8, True)
    sInicio = Now()
    oLog.WriteLine "**** Inicio do Log: " & sInicio
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine ""
    oLog.WriteLine "************************************************"
    oLog.WriteLine Now() & " Executando cópia dos arquivos "
    	For each file in folder.files
    		If file.DateLastModified > (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Copiado: " & File
    			FSO.CopyFile "V:\Backup\*.*", "\\192.168.0.109\c$\Teste"
    		End If
    	Next
    
    oLog.WriteLine "**** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close

    Não sei se está certo mas funcionou,

    Se você puder me dizer se está correto, muito obrigado,

    quarta-feira, 19 de outubro de 2016 13:48
  • Boa tarde Vitor,

    Esta certo sim, é válido.

    fiz um outro exemplo, bem parecido com o que vc montou.

    Coloquei a cópia dos arquivos dentro do FOR, como os arquivos com mais de 5 dias já foram deletados, não precisamos verificar novamente.

    Com  "File.Path" que informa o caminho do arquivo executei uma cópia dos arquivo individuais.

    Como não sei como pode ficar o tamanho do Log, fiz uma alteração no nome do arquivo de maneira que ele gere um log com o nome da data e hora que rodou, por exemplo o nome do log é  "19102016_184249.log", então esse é o log do dia 19/10/2016 ás 18:42:49.

    sDateLog =  Replace(Replace(Replace(now,"/",""),":","")," ","_")
    ' Exemplo de data 19102016_184249 = 19/10/2016 18:42:49
    
    Set FSo = CreateObject("Scripting.FileSystemObject")
    Set folder = FSO.getFolder ("V:\Backup\")
    Set oLog = FSO.OpenTextFile("V:\Log\"& sDateLog & ".Log", 8, True)
    
    sInicio = Now()
    oLog.WriteLine "***********************************************"
    oLog.WriteLine "******** Inicio do Log: " & sInicio
    oLog.WriteLine "***********************************************"
    	For each file in folder.files
    		If file.DateLastModified < (Now -5) Then
    			oLog.WriteLine  Now() & " Arquivo Deletado: " & File
    			File.delete
    		End If
    	Next
    oLog.WriteLine Now() & "***********************************************"
    oLog.WriteLine Now() & "******** Executando cópia dos arquivos ********"
    oLog.WriteLine Now() & "***********************************************"
    	For each file in folder.files
    		oLog.WriteLine  Now() & " Copiando: " & File
    		FSO.CopyFile File.path, "\\192.168.0.109\c$\Teste"
    	Next
    oLog.WriteLine "***********************************************"	
    oLog.WriteLine "******** Finalizado Log " & Now()
    oLog.WriteLine "************************************************"
    oLog.Close


    att, Aparecido Deveza


    quarta-feira, 19 de outubro de 2016 20:58
  • Muito Obrigado Aparecido funcionou perfeitamente

    apenas fiz um ajuste no "FSO.CopyFile" pois estava dando erro de permissão

    Valeu pela ajuda

    sexta-feira, 21 de outubro de 2016 10:47