Usuário com melhor resposta
Mostrar o que está sendo executado em um script

Pergunta
-
Boa noite pessoal.
Primeiramente gostaria muito de agradecer o espaço do technet que ajuda muitos atuantes da área de T.I.
Pois é de grande valor de conhecimento e troca de informações. Mas vamos lá ..
Eu tenho um script de backup que faz cópia de todo o banco de dados da empresa. Como o processo é muito demorado e grande não consigo saber como está o andamento e acompanhando o processo de cópia , gostaria de saber se tem alguma forma de o script ficar sendo mostrado na tela, um parâmetro de como está o processo ,,exe. Quantos % de cópia ou quais os arquivos estão sendo copiados ou até mesmo o tempo previsto para finalização do processo.
Se puderem me ajudar agradeceria bastante ...
o meu backup é executado assim:
Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" &Month(dNow), 2) dd = Right("00" &Day(dNow), 2) hh = Right("00" &Hour(dNow), 2) nn = Right("00" &Minute(dNow), 2) ss = Right("00" &Second(dNow), 2) NewFolder = "F:\BACKUP_ADMIN\" & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"
OBRIGADO
JOSÉ ANTÔNIO DUARTE
- Editado Fábio JrModerator terça-feira, 2 de julho de 2013 13:47 formato codigo
Respostas
-
José Antônio,
Eu prefiro ensinar do que fazer pra você, mas já que está dificil...
'Fiz apenas uma modificacao no seu script: colocar a pasta raiz do backup 'em uma variavel (facilita o meu teste) e tambem uma variavel com os arquivos de origem strRaizBackup = "F:\BACKUP_ADMIN\" 'Aqui é a pasta destino, ainda será criada uma subpasta strPastaBackup = "D:\RD_ADMIN\ADMIN\admin_compactado" 'Aqui é o que será copiado (origem) 'Aqui começa o seu script, fiz apenas uma modificacao (newfolder=...) e exclui as duas ultimas linhas Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" & Month(dNow), 2) dd = Right("00" & Day(dNow), 2) hh = Right("00" & Hour(dNow), 2) nn = Right("00" & Minute(dNow), 2) ss = Right("00" & Second(dNow), 2) 'A linha abaixo eu modifiquei, agora usa variavel setada no inicio do script NewFolder = strRaizBackup & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder 'Até aqui é o seu script (ele apenas criou a pasta de destino) =========================================== 'Agora começa a cópia com progresso ================= Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = NewFolder 'Aqui é configurado a pasta de destino Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere strPastaBackup, FOF_CREATEPROGRESSDLG 'Aqui realiza a cópia. 'Aqui acabou a cópia ================= 'Esta sua linha não precisa mais, já que a cópia já aconteceu. 'ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true 'A linha abaixo vc pode deixar objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"
Veja que não tem nenhum bicho de 7 cabeças, é apenas colocar o código no lugar certo, hoje eu consigo ver isto fácil, mas apanhei muito, se não tentar não aprende.
Scripts não tem muito segredo, eu mesmo escrevo pouca coisa do zero, na maior parte do tempo é juntar dois exemplos de código e fazer com que eles conversem, como neste caso. Era apenas uma questão de substituir a parte que vc copiava o diretório e preencher corretamente os parametros com dados que você já dispunha.Veja como alterei apenas duas palavras do código original.
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator sexta-feira, 28 de junho de 2013 17:37
- Marcado como Resposta Fábio JrModerator sábado, 27 de julho de 2013 22:45
Todas as Respostas
-
José Antonio,
Repare que durante a execução do scripts o script fica "travado" (regra geral, pode haver exceção que eu não conheço) na linha que ele está executando então não é possivel obter informações durante este periodo. Exemplo: Quando vc usa a linha objFSO.copyfolder..., enquanto a cópia não finaliza vc não consegue fazer mais nada no script, não tem como saber a quantas anda a cópia.
No caso de cópia de arquivos existe uma possibilidade de usar um outro objeto para cópia (vc está usando o Scripting.FileSystemObject), é o objeto shell.application, porém você também não terá controle sobre status, ele vai exibir a tela de cópia de arquivos padrão do Windows, que talvez já seja o suficiente pra você.
Ref.:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx
Fábio de Paula Junior
-
-
-
Aqui tem bem explicado.
Copying Folders by Using the Shell Folder Object
http://technet.microsoft.com/en-us/library/ee176633.aspx
Se nao conseguir envie seu novo script que eu tento ajudar.
Fábio de Paula Junior
-
Fábio boa tarde.
tentei várias vezes aqui e não consigo .. sempre apresenta a mensagem que
" o objeto não dá suporte para a propriedade ou método :
'objFolder.CopyHere'
código:800A01B6
será que poderia me ajudar ?
o meu código que funciona é esse , porém sem modo visual.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell=CreateObject("Wscript.Shell")
dNow = Now
yyyy = Right(Year(dNow), 4)
mt = Right("00" &Month(dNow), 2)
dd = Right("00" &Day(dNow), 2)
hh = Right("00" &Hour(dNow), 2)
nn = Right("00" &Minute(dNow), 2)
ss = Right("00" &Second(dNow), 2)
NewFolder = "F:\BACKUP_ADMIN\" & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\"
objFSO.CreateFolder NewFolder
ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true
objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"desde já agradeço Fábio
-
-
Fabio bom dia.
Desde já agradeço a sua atenção , vamos lá:
eu fiz esse aqui que deu certo, mostrou e tudo o tempo da cópia e tal
Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = "D:\backup" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere "C:\downloads", FOF_CREATEPROGRESSDLG
porém eu preciso fazer com este script que cria uma pasta + data da criação para fazer um backup .O que estaria errado aqui amigo ?
Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = "F:\BACKUP_ADMIN" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" &Month(dNow), 2) dd = Right("00" &Day(dNow), 2) hh = Right("00" &Hour(dNow), 2) nn = Right("00" &Minute(dNow), 2) ss = Right("00" &Second(dNow), 2) NewFolder = "F:\BACKUP_ADMIN\" & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder objFolder.CopyHere "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , FOF_CREATEPROGRESSDLG ,true ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", "F:\BACKUP_ADMIN\GRAVAR DVD DE BACKUP\" , true objFolder.CopyHere "C:\downloads", FOF_CREATEPROGRESSDLG objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.*"
Obrigado
Josè Antônio Duarte
- Editado Fábio JrModerator terça-feira, 25 de junho de 2013 13:17 Formatacao
-
Se entendi bem:
Analise esta linha:
objFolder.CopyHere "C:\downloads", FOF_CREATEPROGRESSDLG
Vc esta mandando copia a pasta c:\donwloads para dentro da pasta que esta configurada no objeto objFolder.
So que vc setou isto muito cedo em:
Set objFolder = objShell.NameSpace(ParentFolder)
Acho que vc tem que utilizar a linha acima apos a criacao da pasta nova, assim
Set objFolder = objShell.NameSpace(NewFolder)
Nao tenho como testar no momento, mas faz sentido pra vc?
Fábio de Paula Junior
-
vixi Fábio faz sentido sim..
mas não consegui assimilar as coisas ...
vc disse que eu setei isso muito cedo ( deve existir esta linha?)
ficou assim:
Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = "F:\BACKUP_ADMIN" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(NewFolder) Set objFolder = objShell.NameSpace(ParentFolder) Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" &Month(dNow), 2) dd = Right("00" &Day(dNow), 2) hh = Right("00" &Hour(dNow), 2) nn = Right("00" &Minute(dNow), 2) ss = Right("00" &Second(dNow), 2) NewFolder = "F:\BACKUP_ADMIN\" & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder objfolder.CopyHere "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , FOF_CREATEPROGRESSDLG ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", "F:\BACKUP_ADMIN\GRAVAR DVD DE BACKUP\" , true objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.*"
porém quando mando rodar apresenta a mensagem :
numero de arqumentos incorreto ou atribuio de proprieda invlida:
tá dificil parceiro ... me ajuda ai ...
abração
- Editado Fábio JrModerator terça-feira, 25 de junho de 2013 15:41 formatacao
-
Vou tentar de novo:
1)O que significa esta linha?
objFolder.CopyHere "C:\downloads", FOF_CREATEPROGRESSDLG
Resposta: Copiar c:\Donwload para dentro da pasta setada em objFolder.
Agora me responde, qual pasta esta setada em objFolder????
A respostas esta nesta linha:
Set objFolder = objShell.NameSpace(ParentFolder)
No ultimo script que vc mandou vc adicionou isto aqui:
Set objFolder = objShell.NameSpace(NewFolder) Set objFolder = objShell.NameSpace(ParentFolder)
Vc primeiro disse que objFolder sera igua a pasta da variavel NewFolder e logo em seguida ja mudou pra outra.
Neste momento NewFolder esta Vazio, vc tem que usar esta linha depois que vc contruir NewFolder.
Ta chegando la'...
Fábio de Paula Junior
-
Fabio a pasta c:\downloads foi somente um exemplo que eu criei para desmonstração.
O problema maior é que :
Eu preciso copiar para a nova pasta de backup+data que o script construi :
Achei que isso poderia ser mais fácil , mas pelo jeito vou ter que desistir disso:
2 dias e não consegui resolver ...
vlw
-
Fabio nesse script que segui do exemplo deu certo:
Const FOF_CREATEPROGRESSDLG = &H0&
ParentFolder = "D:\backup"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(ParentFolder)
objFolder.CopyHere "C:\downloads", FOF_CREATEPROGRESSDLGporém quando tento implementar no backup meu aqui que dá pau..
-
Fabio consegui rodar o backup com este script porém não aparece o tempo de execução:
Const FOF_CREATEPROGRESSDLG = &H0&
set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell=CreateObject("Wscript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
ParentFolder = "F:\BACKUP_ADMIN\"
dNow = Now
yyyy = Right(Year(dNow), 4)
mt = Right("00" &Month(dNow), 2)
dd = Right("00" &Day(dNow), 2)
hh = Right("00" &Hour(dNow), 2)
nn = Right("00" &Minute(dNow), 2)
ss = Right("00" &Second(dNow), 2)
NewFolder = "F:\BACKUP_ADMIN\" & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\"
objFSO.CreateFolder NewFolder
objFSO.CopyFolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , FOF_CREATEPROGRESSDLG """" AQUI DEVERIA CHAMAR A CONSTANTE DO TEMPO""
ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", "F:\BACKUP_ADMIN\GRAVAR DVD DE BACKUP\" , true
Mas não está chamando.
-
-
José Antônio,
Eu prefiro ensinar do que fazer pra você, mas já que está dificil...
'Fiz apenas uma modificacao no seu script: colocar a pasta raiz do backup 'em uma variavel (facilita o meu teste) e tambem uma variavel com os arquivos de origem strRaizBackup = "F:\BACKUP_ADMIN\" 'Aqui é a pasta destino, ainda será criada uma subpasta strPastaBackup = "D:\RD_ADMIN\ADMIN\admin_compactado" 'Aqui é o que será copiado (origem) 'Aqui começa o seu script, fiz apenas uma modificacao (newfolder=...) e exclui as duas ultimas linhas Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" & Month(dNow), 2) dd = Right("00" & Day(dNow), 2) hh = Right("00" & Hour(dNow), 2) nn = Right("00" & Minute(dNow), 2) ss = Right("00" & Second(dNow), 2) 'A linha abaixo eu modifiquei, agora usa variavel setada no inicio do script NewFolder = strRaizBackup & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder 'Até aqui é o seu script (ele apenas criou a pasta de destino) =========================================== 'Agora começa a cópia com progresso ================= Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = NewFolder 'Aqui é configurado a pasta de destino Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere strPastaBackup, FOF_CREATEPROGRESSDLG 'Aqui realiza a cópia. 'Aqui acabou a cópia ================= 'Esta sua linha não precisa mais, já que a cópia já aconteceu. 'ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true 'A linha abaixo vc pode deixar objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"
Veja que não tem nenhum bicho de 7 cabeças, é apenas colocar o código no lugar certo, hoje eu consigo ver isto fácil, mas apanhei muito, se não tentar não aprende.
Scripts não tem muito segredo, eu mesmo escrevo pouca coisa do zero, na maior parte do tempo é juntar dois exemplos de código e fazer com que eles conversem, como neste caso. Era apenas uma questão de substituir a parte que vc copiava o diretório e preencher corretamente os parametros com dados que você já dispunha.Veja como alterei apenas duas palavras do código original.
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator sexta-feira, 28 de junho de 2013 17:37
- Marcado como Resposta Fábio JrModerator sábado, 27 de julho de 2013 22:45
-
-
-
-
-
Boa tarde Fábio, fiz os testes de acordo com o que vc me ensinou, o script foi executado com sucesso, porém ele roda em modo oculto ( só vejo pelo gerenciador de tarefas que o wscript.exe está rodando mas sem tempo de execução ainda faltando) tem como fazer com o script rode de forma visível para o operador informando o status de tempo e cópia dos arquivos conforme roda uma cópia de CTRL+C e CRTL+V do windows ?
Desde já fico muito grato pela sua contribuição e fico aguardando ..
Grande abraço
José Antônio Duarte
PS: o meu script ficou assim :
strRaizBackup = "H:\BACKUP_ADMIN\"
strPastaBackup = "S:\RD_ADMIN\ADMIN\admin_compactado"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell=CreateObject("Wscript.Shell")
dNow = Now
yyyy = Right(Year(dNow), 4)
mt = Right("00" & Month(dNow), 2)
dd = Right("00" & Day(dNow), 2)
hh = Right("00" & Hour(dNow), 2)
nn = Right("00" & Minute(dNow), 2)
ss = Right("00" & Second(dNow), 2)
'A linha abaixo eu modifiquei, agora usa variavel setada no inicio do script
NewFolder = strRaizBackup & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\"
objFSO.CreateFolder NewFolder
'Até aqui é o seu script (ele apenas criou a pasta de destino) ===========================================
'Agora começa a cópia com progresso =================
Const FOF_CREATEPROGRESSDLG = &H0&
ParentFolder = NewFolder 'Aqui é configurado a pasta de destino
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(ParentFolder)
Set objFolder = objShell.NameSpace(ParentFolder)
objFolder.CopyHere str = "S:\RD_ADMIN\ADMIN\admin_compactado", FOF_CREATEPROGRESSDLG
'Aqui acabou a cópia =================
'Esta sua linha não precisa mais, já que a cópia já aconteceu.
ObjFSO.copyfolder "S:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true
'A linha abaixo vc pode deixar
objFSO.DeleteFile "S:\RD_ADMIN\ADMIN\admin_compactado\*.rar"- Editado José Antônio Duarte dos Santos quinta-feira, 30 de janeiro de 2014 17:15
- Sugerido como Resposta José Antônio Duarte dos Santos quarta-feira, 5 de fevereiro de 2014 15:34
-
Fábio bom dia.
O script funciona a parte de criação de pasta, cópia e deletar o arquivos , porém ainda não consigo achar o pq na função : set objFolder = objShell.NameSpace(ParentFolder) ele não mostra o que está copiando , fazendo um script simples somente de cópia ele mostra mas quando eu rodo este script que vc me ensinou não vai, será que está faltando algo ou o windows não consegue carregar o progresso da cópia quando está fazendo este tipo de script ?
Agradeço de coração pela ajuda mas se ainda me puder me dar esta força agradeço muito .
-
José Antônio,
Eu prefiro ensinar do que fazer pra você, mas já que está dificil...
'Fiz apenas uma modificacao no seu script: colocar a pasta raiz do backup 'em uma variavel (facilita o meu teste) e tambem uma variavel com os arquivos de origem strRaizBackup = "F:\BACKUP_ADMIN\" 'Aqui é a pasta destino, ainda será criada uma subpasta strPastaBackup = "D:\RD_ADMIN\ADMIN\admin_compactado" 'Aqui é o que será copiado (origem) 'Aqui começa o seu script, fiz apenas uma modificacao (newfolder=...) e exclui as duas ultimas linhas Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" & Month(dNow), 2) dd = Right("00" & Day(dNow), 2) hh = Right("00" & Hour(dNow), 2) nn = Right("00" & Minute(dNow), 2) ss = Right("00" & Second(dNow), 2) 'A linha abaixo eu modifiquei, agora usa variavel setada no inicio do script NewFolder = strRaizBackup & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder 'Até aqui é o seu script (ele apenas criou a pasta de destino) =========================================== 'Agora começa a cópia com progresso ================= Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = NewFolder 'Aqui é configurado a pasta de destino Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere strPastaBackup, FOF_CREATEPROGRESSDLG 'Aqui realiza a cópia. 'Aqui acabou a cópia ================= 'Esta sua linha não precisa mais, já que a cópia já aconteceu. 'ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true 'A linha abaixo vc pode deixar objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"
Veja que não tem nenhum bicho de 7 cabeças, é apenas colocar o código no lugar certo, hoje eu consigo ver isto fácil, mas apanhei muito, se não tentar não aprende.
Scripts não tem muito segredo, eu mesmo escrevo pouca coisa do zero, na maior parte do tempo é juntar dois exemplos de código e fazer com que eles conversem, como neste caso. Era apenas uma questão de substituir a parte que vc copiava o diretório e preencher corretamente os parametros com dados que você já dispunha.Veja como alterei apenas duas palavras do código original.
Fábio de Paula Junior
Fábio bom dia.
O script funciona a parte de criação de pasta, cópia e deletar o arquivos , porém ainda não consigo achar o pq na função : set objFolder = objShell.NameSpace(ParentFolder) ele não mostra o que está copiando , fazendo um script simples somente de cópia ele mostra mas quando eu rodo este script que vc me ensinou não vai, será que está faltando algo ou o windows não consegue carregar o progresso da cópia quando está fazendo este tipo de script ?
Agradeço de coração pela ajuda mas se ainda me puder me dar esta força agradeço muito .
-
José Antônio,
Executei o script que te passei alterando apenas as pasta de origem e destino, e olha a janela que aparece pra mim:
O script está correto, pode ser a forma que você executa que está ocasionando o problema.
Eu apenas dei dois clicks no arquivo .vbs, o que você está fazendo?
Estou executando em um micro com Windows 7 e meu usuário não é administrador.
Fábio de Paula Junior
- Editado Fábio JrModerator sexta-feira, 14 de fevereiro de 2014 18:36
-
José Antônio,
Eu prefiro ensinar do que fazer pra você, mas já que está dificil...
'Fiz apenas uma modificacao no seu script: colocar a pasta raiz do backup 'em uma variavel (facilita o meu teste) e tambem uma variavel com os arquivos de origem strRaizBackup = "F:\BACKUP_ADMIN\" 'Aqui é a pasta destino, ainda será criada uma subpasta strPastaBackup = "D:\RD_ADMIN\ADMIN\admin_compactado" 'Aqui é o que será copiado (origem) 'Aqui começa o seu script, fiz apenas uma modificacao (newfolder=...) e exclui as duas ultimas linhas Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell=CreateObject("Wscript.Shell") dNow = Now yyyy = Right(Year(dNow), 4) mt = Right("00" & Month(dNow), 2) dd = Right("00" & Day(dNow), 2) hh = Right("00" & Hour(dNow), 2) nn = Right("00" & Minute(dNow), 2) ss = Right("00" & Second(dNow), 2) 'A linha abaixo eu modifiquei, agora usa variavel setada no inicio do script NewFolder = strRaizBackup & "BACKUP_ADMIN " & dd & "-" & mt & "-" & yyyy & "." & hh & "-" & nn & "\" objFSO.CreateFolder NewFolder 'Até aqui é o seu script (ele apenas criou a pasta de destino) =========================================== 'Agora começa a cópia com progresso ================= Const FOF_CREATEPROGRESSDLG = &H0& ParentFolder = NewFolder 'Aqui é configurado a pasta de destino Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace(ParentFolder) objFolder.CopyHere strPastaBackup, FOF_CREATEPROGRESSDLG 'Aqui realiza a cópia. 'Aqui acabou a cópia ================= 'Esta sua linha não precisa mais, já que a cópia já aconteceu. 'ObjFSO.copyfolder "D:\RD_ADMIN\ADMIN\admin_compactado", NewFolder , true 'A linha abaixo vc pode deixar objFSO.DeleteFile "D:\RD_ADMIN\ADMIN\admin_compactado\*.rar"
Veja que não tem nenhum bicho de 7 cabeças, é apenas colocar o código no lugar certo, hoje eu consigo ver isto fácil, mas apanhei muito, se não tentar não aprende.
Scripts não tem muito segredo, eu mesmo escrevo pouca coisa do zero, na maior parte do tempo é juntar dois exemplos de código e fazer com que eles conversem, como neste caso. Era apenas uma questão de substituir a parte que vc copiava o diretório e preencher corretamente os parametros com dados que você já dispunha.Veja como alterei apenas duas palavras do código original.
Fábio de Paula Junior
Fábio de Paula Junior
- Sugerido como Resposta José Antônio Duarte dos Santos segunda-feira, 17 de fevereiro de 2014 12:00
-
-
Fabio bom dia.
Como não estava dando certo de forma alguma eu fiz o seguinte, peguei o script e copiei ele todo para um pc que tinha W7 , salvei e fiz uma nova cópia , mandei para o pc que tem WSERVER 2003 e não sei o pq a cópia está rodando rsrsrs.. coisas da INFORMÁTICA ...
Amigo desde já agradeço de coração a sua contribuição, me salvou por várias vezes e quem sabe um dia eu tbm possa contribuir , poderá contar comigo..
Obrigado
Saudações
José Antônio Duarte
-
Boa noite Fábio ,
Não sei se ainda posso perguntar neste mesmo post.
Mas já aproveitando a oportunidade gostaria de saber se tem a possibilidade de criar uma subpasta dentro do diretório é que criado no script que vc me ajudou .
Tem esta possibilidade ?
Agradeço desde já
José Antônio