Ir ao conteúdo

Bat CRIAR ARQUIVO .BAT via SCRIPT


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Pessoal, 

 

Estou com uma dúvida. Tenho um Script CMD para criação que cria algumas tarefas no Windows Scheduler, 

 

schtasks /create /sc monthly /mo first /d mon /st 08:30 /rl highest /tn \FuncaoSaaS\Expurgo_Pastas_Backup_HML /tr "C:\SistemasHML\Util\Expurgo_Backup.bat" /ru %COMPUTERNAME%\JobService /rp S@47W#Z46@S /f

 

Basicamente o que eu preciso é que ele além de criar a tarefa no Scheduler, ele crie a bat que o Scheduler trará: 

"Expurgo_Backup.bat" 

 

com essas informações:

@echo off
set mes=%date:~3,2%
set AnoAtual=%Date:~6,4%
set /a AnoPassado=%AnoAtual% - 1
set /a AnoRetrasado=%AnoAtual% - 2
set /a TresAnosAtras=%AnoAtual% - 3

if %mes%==07 rmdir /S /Q C:\SistemasHML\Backup\%AnoAtual%\01 C:\SistemasHML\Backup\%AnoPassado% C:\SistemasHML\Backup\%AnoRetrasado% C:\SistemasHML\Backup\%TresAnosAtras%

 

Eu achei um jeito usando o powershell: 

powershell -command "ni C:\Sistemas\Util\Expurgo_Backup_HML.bat -v '
@echo off
set mes=%date:~3,2%
set AnoAtual=%Date:~6,4%
set /a AnoPassado=%AnoAtual% - 1
set /a AnoRetrasado=%AnoAtual% - 2
set /a TresAnosAtras=%AnoAtual% - 3

if %mes%==07 rmdir /S /Q C:\SistemasHML\Backup\%AnoAtual%\01 C:\SistemasHML\Backup\%AnoPassado% C:\SistemasHML\Backup\%AnoRetrasado% C:\SistemasHML\Backup\%TresAnosAtras%' " 

 

Mas não funciona bem dentro do .BAT, conseguem ajudar? 

Postado

Porque você precisa/deseja criar um novo bat a cada vez que rodará a tarefa?

Arquivos bat podem ter variáveis que controlam data, mover ou apagar arquivos baseados na sua data de criação.
Você pode fazer o bat que faça esses testes c/ base na data de hoje, e daí só agenda ele a rodar na frequência que deseja

 

Postado

Usando o Script em Shell sim, preciso de um jeito pra fazer isso funcional no cmd. 

 

ni C:\Sistemas\Util\Expurgo_Backup_HML.bat -v '
@echo off
set mes=%date:~3,2%
set AnoAtual=%Date:~6,4%
set /a AnoPassado=%AnoAtual% - 1 ' 

 

Isso aí funciona NO SHELL

  • Solução
Postado

@Matheus Pimenta 97 seria isso:

 

echo @echo off>"Expurgo_Backup.bat"
echo set mes=%%date:~3,2%% >>"Expurgo_Backup.bat"
echo set AnoAtual=%%Date:~6,4%% >>"Expurgo_Backup.bat"
echo set /a AnoPassado=%%AnoAtual%% - 1 >>"Expurgo_Backup.bat"
echo set /a AnoRetrasado=%%AnoAtual%% - 2 >>"Expurgo_Backup.bat"
echo set /a TresAnosAtras=%%AnoAtual%% - 3 >>"Expurgo_Backup.bat"
echo. >>"Expurgo_Backup.bat"
echo if %%mes%%==07 rmdir /S /Q C:\SistemasHML\Backup\%%AnoAtual%%\01 C:\SistemasHML\Backup\%%AnoPassado%% C:\SistemasHML\Backup\%%AnoRetrasado%% C:\SistemasHML\Backup\%%TresAnosAtras%% >>"Expurgo_Backup.bat"

 

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!