Usuário com melhor resposta
Backup via VBScript lendo caminho por um arquivo TXT

Pergunta
-
Prezados, Bom Dia,
Estou precisando fazer uma rotina de backup, sendo que, o script deve ler de um arquivo de texto o diretório das pastas que deverão estar no processo de backup.
eu já consigo ler o txt, abrir e ler as linhas, porém, não consegui usar o conteúdo de dentro do .txt para definir o destino e a origem do backup, segue abaixo como está o andamento do meu script, se alguem puder me ajudar, fico grato.
'Calcular Espaço do HD Set ObjetoWMI = GetObject("winmgmts:") set discoD = ObjetoWMI.get("win32_logicalDisk.deviceID='D:'") Espacolivre = discoD.freespace 'Variavel Data data = day(date) & "-" & month(date) & "-" & Year(date) 'Ler Arquivos Const conForReading = 1 'Declare Variáveis Dim objFSO, objOrg, objDes 'Configurar Objetos Set objFSO = CreateObject("Scripting.FileSystemObject") Set objOrg = objFSO.OpenTextFile("D:\Backup\Origem.txt", 1, False) Set objDes = objFSO.OpenTextFile("D:\Backup\Destino.txt", 1, False) 'Ler Arquivos de Texto do while not objOrg.atendofstream origem = objOrg.Readline destino = objDes.Readline 'Definindo Pasta Set Pasta_Org = objFSO.GetFolder (origem) Set Pasta_Des = objFSO.GetFolder (destino) 'Imprimir Caminho na Tela wscript.echo Pasta_Org wscript.echo Pasta_Des For Each Arquivo In Pasta_Org.Files If not objFSO.GetExtensionName (Arquivo) = "exe" Then total = total + Arquivo.size End If Next 'Criação LOG Set arqSaida = objFSO.CreateTextFile("D:\Log\Log_" & data & ".txt", true) If total < Espacolivre Then For Each Arquivo In Pasta_Org If not objFile.GetExtensionName(Arquivo) = "exe" then objFSO.copyFolder (Pasta_Org) + arquivo.Name, (Pasta_Des) + arquivo.Name arqSaida.WriteLine(arquivo.Name & " - " & arquivo.size) End if Next End If loop
- Editado Fábio JrModerator domingo, 14 de abril de 2013 12:39 formatação do código
Respostas
-
Amigo faça a seguinte alteração no seu .vbs, que deverá resolver seu problema.
....
If total < Espacolivre Then
For Each Arquivo In Pasta_Org.Files
If not objFSO.GetExtensionName(Arquivo) = "exe" then
objFSO.CopyFolder Pasta_Org, Pasta_Des, true
arqSaida.WriteLine(arquivo.Name & " - " & arquivo.size)
End if
Next
End If...
Att.
Carlos E.
- Editado VIMAN Sistemas - Suporte sexta-feira, 26 de abril de 2013 14:57
- Sugerido como Resposta Fábio JrModerator segunda-feira, 29 de abril de 2013 16:28
- Marcado como Resposta Fábio JrModerator terça-feira, 30 de abril de 2013 17:17
Todas as Respostas
-
Sadraque,
Poste também um exemplo dos seus arquivos origem e destino.
Pelo que entendi a primeira linha do origem deve ser salvo na pasta que esta na primeira linha do destino.txt, a segunda linha do origem.txt salvo na pasta da segunda linha do destino.txt, certo????
Está dando algum erro na execução?
De cara vi este erro, na linha:
If not objFile.GetExtensionName(Arquivo) = "exe" then
troque por
If not objFSO.GetExtensionName(Arquivo) = "exe" then
Não existia o objFile declarado\instanciado.
Fábio de Paula Junior
-
Fábio, obrigado, não me atentei no erro, porém, a dificuldade mesmo é no problema que citei acima, por exemplo.
eu tenho um arquivo com o nome Origem.TXT, dentro dele tem o caminho: C:\Windows
e tenho também o arquivo Destino.TXT que dentro dele tem o caminho: D:\Backup
eu preciso fazer com que o script leia esses conteúdos que estão dentro do arquivo de texto e use esses caminhos como Origem e Destino do backup.
-
Sandraque,
Seu script já faz isso, os dados estão nas váriaveis origem e destino e depois estas váriaveis são utilizadas para abrir o objeto Folder(GetFolder).
Execute seu script em um prompt de comando utilizando o cscript caminho do script, e envie um print da tela, sem isso fica dificil ajudar.
Exemplo:
cscript c:\temp\seuscript.vbs
Fábio de Paula Junior
-
Amigo faça a seguinte alteração no seu .vbs, que deverá resolver seu problema.
....
If total < Espacolivre Then
For Each Arquivo In Pasta_Org.Files
If not objFSO.GetExtensionName(Arquivo) = "exe" then
objFSO.CopyFolder Pasta_Org, Pasta_Des, true
arqSaida.WriteLine(arquivo.Name & " - " & arquivo.size)
End if
Next
End If...
Att.
Carlos E.
- Editado VIMAN Sistemas - Suporte sexta-feira, 26 de abril de 2013 14:57
- Sugerido como Resposta Fábio JrModerator segunda-feira, 29 de abril de 2013 16:28
- Marcado como Resposta Fábio JrModerator terça-feira, 30 de abril de 2013 17:17