domingo, 29 de janeiro de 2012

.BAT Saving Backup

Criei o .BAT que comentei no tópico do FFV.

Basta salvar como .bat e colocar no agendador de tarefas. É bem provável que não funcione com XP. Se você tiver interessado eu posso explicar como agendar o .bat, eu vou configurar neste momento para executar sempre que ligar o PC.

Esse bat procura os arquivos na pasta marcada e faz o backup criando pastas com dia e hora.


::Batch que faz backup de saves de emuladores.
::A variavel pastaraiz eh onde sera feita a busca dos arquivos, inclusive subpastas.
::A pastabackup eh a pasta onde sera colocado todos os backups, ela deve existir.
::Coloque as extensoes de arquivo para backup entre ponto e virgula ;

@echo off
cls

set pastaraiz=G:\Emuladores
set pastabackup=L:\BackupSaves
set extensoes=.srm;.sav;.eep;.sra

::set extensoes=.srm;.sav;.eep;.sra;.fla;.mpk

setlocal ENABLEDELAYEDEXPANSION

set data=%DATE:/=-%
set hora=%TIME:~0,8%
set hora=%hora::=%
set titulo=%data% %hora%
set lista=loglist %titulo%.txt

:: Listar todos os arquivos
for %%e in (%extensoes%) do (

dir "%pastaraiz%\*%%e" /b /s >> "%pastabackup%\%lista%"

)

md "%pastabackup%\%titulo%"

:: Ler o arquivo com o nome dos arquivos a serem copiados
for /F "usebackq delims==" %%a in ("%pastabackup%\%lista%") do (
endlocal
xcopy "%%a" "%pastabackup%\%titulo%" /D /Y
setlocal ENABLEDELAYEDEXPANSION
)

Não esqueça de alterar a pastaraiz e pastabackup.

Eu vou melhorar a bat com o tempo. Não sei se é possível mas pretendo fazer com que quando abrimos um tipo de emulador ative a bat para salvar de hora em hora(ou em 30min.), e quando fechar para a bat.


Xpath

<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(Level=4 or Level=0) and (EventID=9010)] and EventData[Data="zsnesw.exe"]]</Select>
</Query>
</QueryList>

4 comentários:

  1. Cara... eu consegui, é bem bizarro, não o melhor método mas funciona.

    Se você quiser ver se seu Windows já está apto, faça o seguinte:

    1. Abra o EventViewer
    Iniciar > Executar ou Windows+R
    Digite EventVwr

    2. Clique em "Ação" e escolha "Criar Modo de Exibição Personalizado"

    3. Clique na aba "XML" e Selecione "Editar consulta manualmente"

    4. Cole o trecho que está post acima(principal) na parte XPath e de ok:

    5. Escolha um nome de ok, e abra o ZSNES

    Se aparecer um evento deu certo, acredito que só funcione com FullScreen.
    Com isso posso fazer um bat personalizado para cada extensão, e quando abrir uma aplicação ele vai fazer backup somente dos saves daquele videogame, de meia em meia hora por exemplo, ai pronto sem problemas de saves perdidos nunca mais.

    Essa bat, pode fazer backup de qualquer coisa afinal, e esse ultimo exemplo de qualquer jogo FullScreen, como os de PC.

    ResponderExcluir
  2. Para jogar eu tenho o 7, não XP. xD

    Muito legal o script, esses tempos eu queria fazer alguma coisa parecida, não me recordo exatamente agora para que...

    ResponderExcluir
  3. No 7 funciona, é porque meu bat contém algumas funções novas. No XP daria bem mais trabalho.

    É um pouco exagerado oque eu fiz aqui, agendei 2 bats, sempre que logar faz backup de tudo, e outra bat é ativada quando abre o Zsnes em Full e ele salva só saves do Snes. Bom seria se eu só fizesse backup quando houvesse alteração no arquivo, ou um outro bat para ir zipando os backups, hehehe
    Mas bem bacana as possibilidades do Windows com Task Scheduler + Event Viewer.

    ResponderExcluir
  4. Fiz uma pequena alteração no código, pois não estava copiando arquivos contendo o caractere de exclamação[!].

    ResponderExcluir