none
Ajuda em Script de Backup RRS feed

  • Pergunta

  • Pessoal tenho este arq Bat que roda nas maq no final da Tarde...

    echo off
    cls
    echo Este Executavel Esta gerando
    echo os backup de seus arquivos
    echo Aguarde até o término desta operação
    echo .


    xcopy "%USERPROFILE%\Meus documentos" "\\Backup\Backupusuarios\%USERNAME%\Meus documentos\" /y /i /s /d /h
    xcopy "%USERPROFILE%\Config~1\Dados de aplicativos\Identities" "\Backup\Backupusuarios\%USERNAME%\Email\" /y /i /s /d /h



    SHUTDOWN -s -t 10 -f -c "Desligamento Automatico, aguarde..."
     
    if errorlevel 4 goto lowmemory
    if errorlevel 2 goto abort
    if errorlevel 0 goto exit
    if errorlevel 5 goto erro

    :erro
    echo Nao foram encontrados arquivos para copiar ou
    echo Nap foram alterados nenhum arquivo
    goto exit

    :erro
    echo Ocorreu erro interno do sistema
    echo Consulte Adm. rede
    pause
    goto exit

    :lowmemory
    echo Memoria insuficiente ou espaco nao disponivel ou
    echo sintaxe de linha de comando ou unidade invalida.
    pause
    goto exit

    :abort
    echo Você pressionou CTRL+C para finalizar a operação de cópia.
    pause
    goto exit

    :exit
    Exit




    Pois bem ele me atende perfeitamente, porém ele fica na própria maq do usuário.... 
    Necessito passar este arq Bat para Script para que eu possa configurar parametros exemplo:
    quero digitar no Prompt de comando "Backup \\ip.da.maquina"  e ele copiar as pastas que estão configuradas dentro deste script e colar dentro de um diretorio (que tb está configurado dentro do script).. porém ele tem que criar uma pasta com o nome do usuário logado.. como no arq bat assima....

    Alguém pode me ajudar ?

    Valew...
    quarta-feira, 28 de fevereiro de 2007 16:35

Respostas

  • Para vc pegar os parâmetros utilize %1 para pegar o primeiro parâmetro, %2 para o 2º e assim por diante...

    Para vc criar diretorios utilize o comando mkdir...

    Abraços

    quinta-feira, 1 de março de 2007 11:13

Todas as Respostas

  • Para vc pegar os parâmetros utilize %1 para pegar o primeiro parâmetro, %2 para o 2º e assim por diante...

    Para vc criar diretorios utilize o comando mkdir...

    Abraços

    quinta-feira, 1 de março de 2007 11:13
  • Opa.. obrigado por responder,....

    Porém não tenho tanta intimidade com Script....

    Como são os comando para passar um parametro para o script ? tipo assim

    Declaração Scritp
    @variavel

    Retorne os dados do diretorio c:\@variavel

    Att,
    José Luiz

    quinta-feira, 1 de março de 2007 15:44

  • Algo + ou - Assim, só que não consigo fazer...



    dim computer
    dim computerBackup
    Const OverWriteFiles = TRUE

    computer=Inputbox("Digite o nome da estação", "VBS Script")
    computerBackup=Inputbox("Digite o nome da estação", "VBS Script")

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFolder "\\computer\%userprofile%\Desktop\", "\\computerBackup\BackupUser\%USERNAME%\Desktop" , OverWriteFiles

    quinta-feira, 1 de março de 2007 16:36
  • Vc quer fazer em vbs ou bat?

    se for em bat vc atribui assim:

    set param1=%1%

    ele vai guardar em uma variavel com o nome param1 o 1º parametro...

    para vc recuperar o valor usa assim:

    %param1%

    Eu não estou entendendo o que vc precisa...

    Abraços

    Esqueci de falar!

    Se vc quer utilizar este parametro para um caminho na rede, supondo que o nome do bat seja BACKUP.BAT, vc executaria assim:

    BACKUP.BAT dados

    No arquivo bat ficaria +- assim:

    c:\%1%\backup

    ele iria abrir a pasta c:\dados\backup

    ok...

    quinta-feira, 1 de março de 2007 17:00
  • Opa blz ...?  obrigado por responder...

    Eu preferia um VBS, mas se a solução vir pelo Bat tudo bem... o problema é que vou usar uma sitaxe assim...

    BACKUP.BAT \\Micro1 \\Micro2

    Onde
    Micro1 = Pc na minha rede onde vou copiar algumas pastas já definidas no arq .bat
    Micro2 = Micro onde eu quero copiar estas pastas.

    Agora eu pergunto BAT ou VBS ?

    sábado, 3 de março de 2007 12:59
  • Não sei se entendi... Mas segue um código em vbs... não teve como eu testar, to 1/2 enrolado e to sem o XP aqui tb... Mas qq coisa posta ai ou me manda um e-mail... Mas por acaso vc quer fazer esse bkp remotamente??

    Dim objShell, sComputadorOrigem, sComputadorDestino

    sComputadorOrigem = Inputbox ("Digite o computador de origem")

    sComputadorDestino = Inputbox ("Digite o computador de destino")

    set objShell = WScript.CreateObject("WScript.Shell")

    'Run -> Comando, 0-> indica p/ não mostrar a janela / 1-> mostra normalmente,
    'True -> aguarda o processamento do comando
    Call objShell.Run( "xcopy ""%USERPROFILE%\Meus documentos"" ""\\Backup\Backupusuarios\%USERNAME%\Meus documentos\"" /y /i /s /d /h", 0, True)

    Call objShell.Run( "xcopy ""%USERPROFILE%\Config~1\Dados de aplicativos\Identities"" ""\Backup\Backupusuarios\%USERNAME%\Email\"" /y /i /s /d /h", 0, True)

    Call objShell.Run( "SHUTDOWN -s -t 10 -f -c ""Desligamento Automatico, aguarde...""")

    set objShell = Nothing

    segunda-feira, 5 de março de 2007 11:40
  • Só pra agregar mais valor: a cópia tanbém pode ser usado o método CopyFolder, que faz quase a mesma coisa, sem mostrar janela alguma, e de uma forma um pouco mais rápida.

    Aqui tem a documentação dele...
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/d3695dd5-45ce-410b-ac96-42a92c68344b.asp

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com



    segunda-feira, 5 de março de 2007 15:56
    Moderador
  • Amigos obrigados a todos graças aos exemplos mostrados aqui, pude gerar este script.. vejam.

    dim computer
    dim computerBackup
    Const OverWriteFiles = TRUE

    computer=Inputbox("Digite o nome do PC que deseja efetuar Backup", "VBS Script")
    computerBackup=Inputbox("Digite o nome da estação que receberá os Arquivos", "VBS Script")

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objUser = WScript.CreateObject("WScript.Network")
    wuser=objUser.UserName



    'On Error Resume Next
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objNetwork = CreateObject("Wscript.Network")
    set objFSO = CreateObject("Scripting.FilesystemObject")

    'Remoção dos compartilhamentos atuais da Unidade k
    if (objFSO.DriveExists("k:")) then
       objNetwork.RemoveNetworkDrive "k:"
    end If

    'Mapeamento da pasta pública para toda a empresa
    objNetwork.MapNetworkDrive "k:", "\\"+computerBackup+"\BackupUser"

    'Renomeando a pasta pública para o nome da empresa
    Set objShell = CreateObject("Shell.Application")
    objShell.NameSpace("k:").Self.Name = "Backup"

    'Next
    'Fim do script

    objFSO.CopyFolder "\\"+computer+"\"+"c$"+"\Documents and Settings\"+wuser+"\Y", "k:\"+wuser+"\" , OverWriteFiles

    if (objFSO.DriveExists("k:")) then
       objNetwork.RemoveNetworkDrive "k:"
    end If


    Set objUser = Nothing





    Coloquei tb uma parte de um script que achei no fórum para mapear de des
    mapear unidades no micro...

    Tem bastante complemento para fazer... tipo se não existir uma pasta no micro com o nome do usuário ele tinha que criar uma... mas isso vou fazendo com o tempo.....

    o que acham ....


    segunda-feira, 5 de março de 2007 16:07
  • Legal!

    Só tome cuidado com as ACLs, se eu não me engano o CopyFolder do FileSystemObject não copia as ACLs = o xcopy... Mas não tenho certeza disso!

    Abraços

    segunda-feira, 5 de março de 2007 16:38
  • Obrigado amigos... mais uma vez... mataram a pau...


    terça-feira, 6 de março de 2007 11:34