none
Script Backup RRS feed

  • Pergunta

  • Bom Dia
    Depois de muita navegação, montei um script para ser executado no prompt de comandos do Windows XP.
    Rodou certo até o teste em mais de uma máquina, pois em algumas delas a variavel date retorna o dia da semana e em outras não, assim o nome do arquivo de log fica diferente, queria deixar igual.
    Tenho duas opções básicas:
    remover o dia da semana quando exibir;
    configurar todos os windows para exibir igual, com ou sem o dia da semana

    Se houver algo importande para copiar que me esqueci, ou se estou copiando informação desnecessária, me avisem por favor.
    Aqui está o menino:

    @echo off

    REM define o dia da semana ao executar be weekday e retornar o erro
    be weekday

    if errorlevel 1 set sem=domingo
    if errorlevel 2 set sem=seg-qui
    if errorlevel 3 set sem=ter-sex
    if errorlevel 4 set sem=qua-sab
    if errorlevel 5 set sem=seg-qui
    if errorlevel 6 set sem=ter-sex
    if errorlevel 7 set sem=qua-sab

    REM remove as barras da data, falha ao criar arquivos com as barras
    REM define a variavel data, sem as barras
    for /F "tokens=1-3 delims=/ " %%A in ('echo %date%') do set data=%%A%%B%%C

    REM * * * * * * * * * * *
    REM definição de variaveis utilizadas no programa robocopy
    REM log, log dos backups realizados - opcao, opcoes do software
    REM caminho, local onde serao gravados os backups
    REM
    set log=z:\LOG\%username%-%sem%-%data%.log
    set opcao=/E /ZB /COPYALL /PF /XF ~$*.* *.tmp *.bak /XO XJ /R:5 /W:5 /V /NP /LOG+:%log%
    set caminho=z:\%username%\%sem%
    echo .
    REM * * * * * * * * * * *
    echo * backup da pasta base do usuario *
    REM nao copia as subpastas e arquivo ntuser
    robocopy "%userprofile%" "%caminho%" %opcao% /XF ntuser*.* /XD *.*

    echo * backup de meus documentos, desktop e favoritos *
    robocopy "%userprofile%\Meus documentos" "%caminho%\Meus Documentos" %opcao%

    robocopy "%userprofile%\Desktop" "%caminho%\Desktop" %opcao%

    robocopy "%userprofile%\Favoritos" "%caminho%\Favoritos" %opcao%

    echo * backup do microsoft outlook 2003 *
    robocopy "%userprofile%\Configurações locais\Dados de aplicativos\Microsoft\Outlook" "%caminho%\Outlook1" %opcao%
    robocopy "%userprofile%\Dados de aplicativos\Microsoft\Outlook" "%caminho%\Outlook2" %opcao%

    echo * backup outlook express *
    robocopy "%userprofile%\Configurações locais\Dados de aplicativos\Identities" "%caminho%\Outlook Express1" %opcao%
    robocopy "%userprofile%\Local Settings\Application Data\Identities" "%caminho%\Outlook Express2" %opcao%

    robocopy "%userprofile%\Dados de aplicativos\Microsoft\Address Book" "%caminho%\Address Book1" %opcao%
    robocopy "%userprofile%\Application Data\Microsoft\Address Book" "%caminho%\Address Book2" %opcao%

    echo * backup meus documentos, se houver em C:\ ou D:\ *
    if exist "c:\meus documentos" robocopy "c:\meus documentos" "%caminho%\C-Meus Documentos" %opcao%
    if exist "d:\meus documentos" robocopy "d:\meus documentos" "%caminho%\D-Meus Documentos" %opcao%

    echo * backup email, se houver em C:\ ou D:\ *
    if exist "c:\email" robocopy "c:\email" "%caminho%\C-email" %opcao%
    if exist "d:\email" robocopy "c:\email" "%caminho%\D-email" %opcao%
    quarta-feira, 15 de outubro de 2008 13:42

Respostas

  •  Paulo-LPZiglio wrote:

    Gostei da sua sugestão Borsatti, confesso que compreendi melhor que a função anterior. Consegui fazer facilmente as alterações necessárias para meu uso.

    Meus problemas agora são os outros detalhes:

     

     

    - consigo eu, gerar o dia da semana mesmo quando no prompt é exibido "dd/mm/aaaa" e não "sem dd/mm/aaaa"? sem usar o be?

     

    Resposta :

    Code Snippet

    @echo off

    set data=%date:~0,3%   %date:~4,2%   %date:~7,2%  %date:~10,4%  %time:~0,2%  %time:~3,2%

    echo %data%

    pause

     

     

     

     

     

     

     

    - não repetir a cópia de arquivos antigos para o NAS200 que usa sistema de arquivos ext2.

    Ou,

    gerar um VbScript para esse backup, mas neste caso não sei nem por onde começar. 

    terça-feira, 21 de outubro de 2008 01:02

Todas as Respostas

  • Continuando com as pesquisas, descobri que a informação do dia da semana ou não no prompt está relacionada com a configuração da data abreviada do windows. Quando uso d/M/aaaa a data exibida no prmpt é sex 17/10/2008, quando uso dd/MM/aaaa a data exibida é 17/10/2008. para resolver isso foi só saber onde no registro é gravada esta informação e configurar no script de login para que todos fiquem iguais, no caso dd/MM/aaaa.

    - criar um arquivo .reg e incluir

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Control Panel\International]
    "sShortDate"="dd/MM/yyyy"

    - criar um .bat

    regedit /s confdata.reg

     

    Mas nem tudo está legal

    Estou usando para backup um NAS200 da Linksys, mas alguns arquivos ele não considera como já existente e copia novamente, enquanto se faço o backup para outro micro a verificação é correta. Alguns destes arquivos são grandes, como um .pst por exemplo. Será porque a partição do NAS200 é ext2?. Não há como mudar.

     

    Agora convido os amigos a me auxiliarem a converter este script num VbScript, conheço muito pouco, pra não dizer nada de VbScript.

    sexta-feira, 17 de outubro de 2008 15:49
  • Se você definir a data no inicio do seu script assim não funcionaria ?

    e no lugar de colocar

    Code Snippet
    REM remove as barras da data, falha ao criar arquivos com as barras
    REM define a variavel data, sem as barras
    for /F "tokens=1-3 delims=/ " %%A in ('echo %date%') do set data=%%A%%B%%C

     

     

    você colocasse

    Code Snippet

    set data=%date:~4,2%%date:~7,2%%date:~10,4%%time:~0,2%%time:~3,2%

     

     

     

     

    no exemplo acima você pode excluir a hora o minuto o ano e até trocar de lugar as posições

    Code Snippet

    DIA  %date:~4,2%

    MES  %date:~7,2%

    ANO  %date:~10,4%

    HORA  %time:~0,2%

    MINUTO %time:~3,2%

     

     

    Teste este script abaixo salve como teste.bat

     

    Code Snippet

    echo off
    set data=DIA-%date:~4,2% MES-%date:~7,2% ANO-%date:~10,4% HORA-%time:~0,2% MINUTO-%time:~3,2%

    echo %data%

    pause

     

     

    sábado, 18 de outubro de 2008 04:36
  • Gostei da sua sugestão Borsatti, confesso que compreendi melhor que a função anterior. Consegui fazer facilmente as alterações necessárias para meu uso.

    Meus problemas agora são os outros detalhes:

    - consigo eu, gerar o dia da semana mesmo quando no prompt é exibido "dd/mm/aaaa" e não "sem dd/mm/aaaa"? sem usar o be?

    - não repetir a cópia de arquivos antigos para o NAS200 que usa sistema de arquivos ext2.

    Ou,

    gerar um VbScript para esse backup, mas neste caso não sei nem por onde começar. 

    segunda-feira, 20 de outubro de 2008 11:53
  •  Paulo-LPZiglio wrote:

    Gostei da sua sugestão Borsatti, confesso que compreendi melhor que a função anterior. Consegui fazer facilmente as alterações necessárias para meu uso.

    Meus problemas agora são os outros detalhes:

     

     

    - consigo eu, gerar o dia da semana mesmo quando no prompt é exibido "dd/mm/aaaa" e não "sem dd/mm/aaaa"? sem usar o be?

     

    Resposta :

    Code Snippet

    @echo off

    set data=%date:~0,3%   %date:~4,2%   %date:~7,2%  %date:~10,4%  %time:~0,2%  %time:~3,2%

    echo %data%

    pause

     

     

     

     

     

     

     

    - não repetir a cópia de arquivos antigos para o NAS200 que usa sistema de arquivos ext2.

    Ou,

    gerar um VbScript para esse backup, mas neste caso não sei nem por onde começar. 

    terça-feira, 21 de outubro de 2008 01:02