Ir ao conteúdo

Posts recomendados

Postado

Boa tarde. Preciso de um script bat para rodar no agendador de tarefas do windows, que exclua diariamente os arquivos anteriores a dois dias, pois são arquivos grandes, dessa forma, só manteremos dois arquivos na pasta (me corrijam se estiver enganado). Grato se alguém puder ajudar.

Postado

@MarcoVision Apagar todos menos os 2 mais recentes ou tudo que for mais antigo que 2 dias? Se for tudo que for mais antigo que 2 dias e executar na segunda sendo que o último arquivo foi gravado na sexta-feira provavelmente vai apagar tudo que tiver na pasta.... 

  • Curtir 1
Postado
#salve o caminho da pasta em uma variável
$minhapasta = "caminho\da\minha\pasta"

#liste os arquivos da pasta
$arquivos = Get-ChildItem -Path $pasta

#só prosseguir se tiver mais que 2 arquivos
if ($arquivos.Count -gt 2) {

  # Ordene os arquivos pelo tempo de modificação
  $arquivosOrdenados = $arquivos | Sort-Object -Property LastWriteTime -Descending

  # Remova os dois primeiros arquivos dessa lista ordenada
  $arquivosOrdenados = $arquivosOrdenados[2..($arquivosOrdenados.Count - 1)]

  # Defina a data de corte para excluir arquivos mais antigos que 2 dias
  $dataCorte = (Get-Date).AddDays(-2)

  # Apague todos os arquivos restantes na lista que sejam mais antigos que a data de corte
  foreach ($arquivo in $arquivosOrdenados) {
      if ($arquivo.LastWriteTime -lt $dataCorte) {
          Remove-Item -Path $arquivo.FullName -Force
      }
  }
	

}

 

como executar no agendador:

  1. salve o script com a extensão .ps1, em uma pasta de sua preferência.
  2. crie a tarefa e configure como você desejar
  3. em ações escolha "executar um programa"
  4. escolha powershell
  5. em argumentos, coloque o caminho da pasta. (se tiver espaços ou simbolos no nome, coloque o caminho entre aspas)
  • Curtir 1
Postado

@ricardo_br Apagar tudo que for anterior a dois dias. Exemplo: tenho 2 arquivos na pasta, o backup do dia 06-12-2024 e 05-12-2024, no dia seguinte teremos 3 arquivos: 05-12-2024, 06-12-2024 e 07-12-2024. Nesse caso preciso que apague o arquivo de 05-12-2024 e assim sucessivamente. Obrigado desde já 

Postado

@MarcoVision Oi tentou o script powershell do colega @Swalls?

Se eu te entendi corretamente caso todos os arquivos tem mais de 2 dias todos devem ser apagados correto? Melhor testar em um copia antes...No caso em Set PastaBackup você deve colocar a pasta alvo onde ficam os backups.

 

@echo off

set PastaBackup=%userprofile%\desktop

forfiles /d -2 /P "%PastaBackup%" /m * /c "cmd.exe /c if @isdir==FALSE del /q @path"

exit 

 

  • Curtir 2

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...