none
Script para copiar pastas de um servidor para um computador local, verificando a existência das mesmas. RRS feed

  • Pergunta

  • Prezados, Bom dia, preciso de uma ajudinha.

    Preciso de um script que faça uma cópia de duas pastas de um servidor para a máquina local do usuário.

    Seguem os passos:

    Tenho um servidor X onde existem duas pastas.

    Quando o usuário clicar no script, o mesmo verificará se essas duas pastas já existem no C:\ do computador do usuário,

    se não existir essas pastas serão copiadas para a raiz do C:\.

    Se existir, será criado na raiz do C: uma pasta chamada _BCKP, e essas pastas existentes seriam movidas para dentro dela.

    E assim por diante.

    Se puderem me ajudar, agradeço muito.

    Obrigado.

    sexta-feira, 30 de abril de 2010 13:10

Respostas

  • Segue o script,

    Só altere o valor nas váriaveis e rode pra ver se funciona.

     Dim strPasta1Origem, strPasta2Origem, strPasta1Destino, strPasta2Destino, strPastaBackup, strPasta1Backup, strPasta2Backup

    'Substitua essas variáveis
    strPasta1Origem = "\\Server\Pasta1"
    strPasta2Origem = "\\Server\Pasta2"
    strPasta1Destino = "C:\Pasta1"
    strPasta2Destino = "C:\Pasta2"
    strPastaBackup = "C:\BKP"
    strPasta1Backup = "C:\BKP\Pasta1"
    strPasta2Backup = "C:\BKP\Pasta2"

    set objFSO=CreateObject("Scripting.FileSystemObject")

       IfNot objFSO.FolderExists(strPastaBackup) Then
          objFSO.CreateFolder(strPastaBackup)
       EndIf
          
    If objFSO.FolderExists(strPasta1Destino) Then
       If objFSO.FolderExists(strPasta1Backup) Then
          Set rootFolder1 = objFSO.GetFolder(strPasta1Backup)   
          rootFolder1.Delete
       EndIf
       
       objFSO.MoveFolder strPasta1Destino, strPasta1Backup


    EndIf

    If objFSO.FolderExists(strPasta2Destino) Then
    If objFSO.FolderExists(strPasta2Backup) Then
          WScript.Echo"Pasta Backup existe"
          Set rootFolder2 = objFSO.GetFolder(strPasta2Backup)   
          rootFolder2.Delete
       EndIf
       
       objFSO.MoveFolder strPasta2Destino, strPasta2Backup

    EndIf

    objFSO.CopyFolder strPasta1Origem, strPasta1Destino
    objFSO.CopyFolder strPasta2Origem, strPasta2Destino
    WScript.Echo"Concluído"

    Qualquer dúvida poste e se for útil vote.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta leonardoasoares sexta-feira, 30 de abril de 2010 18:32
    sexta-feira, 30 de abril de 2010 16:54

Todas as Respostas

  • E se a pasta bkp existir? Como que vc vai jogar a pasta atual lá dentro?

    Vai deletar o que já está na Bkp?

    Ou vai criar dentro da pasta bkp essas outras pastas com o nome alterado, por exemplo Pasta_xx?

    Preciso somente dessa informação para poder te ajudar.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    sexta-feira, 30 de abril de 2010 13:15
  • Bom dia Gabriel,

    realmente ficou faltando informação.

    Se essa pasta _BCKP existir, o conteúdo pode ser apagado e as pastas que estão no C: copiadas novamente para lá.

    Ficando somente uma cópia anterior dentro da mesma.

    Abs.

    sexta-feira, 30 de abril de 2010 13:20
  • Segue o script,

    Só altere o valor nas váriaveis e rode pra ver se funciona.

     Dim strPasta1Origem, strPasta2Origem, strPasta1Destino, strPasta2Destino, strPastaBackup, strPasta1Backup, strPasta2Backup

    'Substitua essas variáveis
    strPasta1Origem = "\\Server\Pasta1"
    strPasta2Origem = "\\Server\Pasta2"
    strPasta1Destino = "C:\Pasta1"
    strPasta2Destino = "C:\Pasta2"
    strPastaBackup = "C:\BKP"
    strPasta1Backup = "C:\BKP\Pasta1"
    strPasta2Backup = "C:\BKP\Pasta2"

    set objFSO=CreateObject("Scripting.FileSystemObject")

       IfNot objFSO.FolderExists(strPastaBackup) Then
          objFSO.CreateFolder(strPastaBackup)
       EndIf
          
    If objFSO.FolderExists(strPasta1Destino) Then
       If objFSO.FolderExists(strPasta1Backup) Then
          Set rootFolder1 = objFSO.GetFolder(strPasta1Backup)   
          rootFolder1.Delete
       EndIf
       
       objFSO.MoveFolder strPasta1Destino, strPasta1Backup


    EndIf

    If objFSO.FolderExists(strPasta2Destino) Then
    If objFSO.FolderExists(strPasta2Backup) Then
          WScript.Echo"Pasta Backup existe"
          Set rootFolder2 = objFSO.GetFolder(strPasta2Backup)   
          rootFolder2.Delete
       EndIf
       
       objFSO.MoveFolder strPasta2Destino, strPasta2Backup

    EndIf

    objFSO.CopyFolder strPasta1Origem, strPasta1Destino
    objFSO.CopyFolder strPasta2Origem, strPasta2Destino
    WScript.Echo"Concluído"

    Qualquer dúvida poste e se for útil vote.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta leonardoasoares sexta-feira, 30 de abril de 2010 18:32
    sexta-feira, 30 de abril de 2010 16:54
  • Valeu Gabriel.

    funcionou perfeitamente.

    Grande abraço.

    sexta-feira, 30 de abril de 2010 18:32
  • bom dia amigos,

    como consigo colocar este script para rodar como script de logon, ou seja, quando o usuario fizer logon na estacao ele atualizar as pasta conforme a execucao do script, rodei o script manualmente e ele funciona excelentemente, porem quando tento adcionar as linhas em um script de logon que tenho ele nao executa..

    alguem pode me dar um Help?

    obrigado...

    segunda-feira, 31 de maio de 2010 14:47
  • olá, boa noite, recebo um erro quando utilizo este script

     

    erro script 800A0005

    informando linha 40 caracter 1, só que não existe nada nesta linha

    segunda-feira, 26 de julho de 2010 21:07