Ir ao conteúdo
  • Cadastre-se

Outro .bat que verifica processo e faz backup


Posts recomendados

Prezados, muito bom dia, boa tarde, boa noite! 🙂

 

Gostaria de saber se é possível criar um .bat para tal função como no exemplo abaixo:

obs: Caso seja possível, se alguém puder colocar o "código", eu ficaria muito contente.

Desde já, grato! 👍


 

start aplicativo.exe

SE aplicativo.exe estiver sendo executado //deve ser verificado a cada 5 minutos
	nenhuma ação
SENAO
	copiar pasta c:\users\usuario\nomedapasta para d:\backup\nomedapasta
	encerrar execução do .bat



 

Link para o comentário
Compartilhar em outros sites

Seria algo assim:

@ECHO OFF

:ESPERA
TASKLIST /FI "IMAGENAME eq notepad.exe" /FI "STATUS eq running" | FIND /I "notepad.exe" > NUL
IF "%errorlevel%"=="1" GOTO ESPERA
GOTO INICIO

:INICIO
TASKLIST /FI "IMAGENAME eq notepad.exe" /FI "STATUS eq running" | FIND /I "notepad.exe" > NUL
IF "%errorlevel%"=="1" (
    ECHO copiar pasta c:\pasta para d:\pasta aqui
    GOTO ESPERA
)
GOTO INICIO

 

Assumo que o script batch vai ficar sempre rodando, mas quer que ele faça apenas 1 backup quando o aplicativo (no meu exemplo "notepad.exe") está fechado, não infinitos backups, então fiz ele sempre esperar até a próxima vez que o programa abrir novamente após fazer uma cópia/backup.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@isrnick meu caro, muito obrigado. Eu estava tentando aqui antes de sua resposta, e consegui fazer o que eu quero com o seguinte código:

@Echo Off

start "E:\games\pc\need for speed underground\Speed.exe"
choice -c r -t 60 -d r >nul
:looping
tasklist /FI "IMAGENAME eq Speed.exe" /NH | FINDSTR /I "Speed.exe" > NUL

IF %ERRORLEVEL% EQU 1 (
   xcopy /E /Y "C:\ProgramData\NFS Underground\*.*" "E:\games\pc\_savesbkp\NFS Underground"
)ELSE (
   choice -c r -t 60 -d r >nul
   goto looping
)

Como pode ver, eu quero fazer backup de um save game que fica setado automaticamente em uma pasta do disco C.

Quando eu baixo imagem na minha máquina, eu perco os saves, e desta forma, isso não acontecerá mais.

Funcionou com 1 dos jogos q eu tenho aqui, porém com este que está no código agora, simplesmente não executa o speed.exe.

Eu executo esta linha direto no prompt só pra ter certeza, e mesmo assim não funciona. Simplesmente não abre o executável.

start "E:\games\pc\need for speed underground\Speed.exe"

O caminho está 100% correto, nome do executável também.
Agora me pergunto, teria outra forma de iniciar o executável dentro de um bat?

Muito obrigado mais uma vez.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Tentou sem usar start? Colocando só o caminho do arquivo?

 

Normalmente você abre o jogo através de um link? Tem algum parâmetro/configuração extra na linha de comando desse link? Se abrir o Speed.exe clicando nele no Explorer o jogo abre normalmente?

 

Fora isso só consigo pensar em usar runas, que é pra rodar um programa com um usuário específico... Mas não deveria ser necessário.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!