Usuário com melhor resposta
Script Backup

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;Se houver algo importande para copiar que me esqueci, ou se estou copiando informação desnecessária, me avisem por favor.
configurar todos os windows para exibir igual, com ou sem o dia da semana
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%
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.
- Marcado como Resposta Fábio JrModerator quinta-feira, 1 de março de 2012 17:33
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.
-
Se você definir a data no inicio do seu script assim não funcionaria ?
e no lugar de colocar
Code SnippetREM 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 Snippetset 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 SnippetDIA %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 Snippetecho 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
-
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.
-
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.
- Marcado como Resposta Fábio JrModerator quinta-feira, 1 de março de 2012 17:33