Usuário com melhor resposta
Gerar LOG com arquivo VBS

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"--------------------------------------------------------------------------------------------------------------------------------------------------------
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
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
-
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,
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
-
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
- Editado Aparecido Deveza quarta-feira, 19 de outubro de 2016 21:00
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
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
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
-
-
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,
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
-
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
- Editado Aparecido Deveza quarta-feira, 19 de outubro de 2016 21:00
- Marcado como Resposta Vitor F Vasconcelos sexta-feira, 21 de outubro de 2016 10:47
-