none
Excluir arquivo em subdiretório com data menor que 30 dias RRS feed

  • Pergunta

  • Boa tarde Comunidade.

    Alguém poderia me ajudar, se é possível criar um  script .vbs ou .bat que exclua um arquivo.zip localizado em um subdiretório, e que este arquivo já esteja criado a mais de 30 dias.

    Situação real:

    Está sendo realizado um backup diário e sendo compactado na extensão .zip. Porém o backup joga este arquivo compactado dentro da pasta SEGUNDA, a pasta segunda fica localizada em C:\BACKUP\SEGUNDA.

    Esse script deverá excluir o arquivo.zip dentro da pasta SEGUNDA. Eu já achei um .vbs que exclui os arquivos, mas como o backup é feito diariamente a pasta pai = BACKUP, sempre fica com o dia atual, impossibilitando de excluir com a sintaxe < que 30.

    Agradeço quem puder me ajudar!

    segunda-feira, 31 de outubro de 2016 16:12

Todas as Respostas

  • André, boa noite,

    Faça um teste com os comandos PowerShell a seguir:

    • Get-ChildItem –Path  “C:\Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item

    ou

    • Get-ChildItem –Path  “C:\Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Remove-Item
    • Para ver os arquivos sendo deletados: Get-ChildItem –Path  “C:\Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item –WhatIf

    Abraço!!


    FABIANO GUIMARÃES DE MELLO - Microsoft Certified IT Professional

    segunda-feira, 31 de outubro de 2016 22:03
  • set objFso    = createObject("scripting.fileSystemObject")
    
    strFileToDelete = "C:\teste\teste.zip"
    
    if CBool(Not objFSo.FileExists(strFileToDelete)) then
    	WScript.Quit
    end if
    
    Set objFile = objFso.GetFile(strFileToDelete)
    
    
    If DateDiff("d",objFile.DateCreated,Now) >= 30 then
    		objFso.DeleteFile(strFileToDelete),True
    end If


    • Editado J. Maurício terça-feira, 1 de novembro de 2016 11:14
    terça-feira, 1 de novembro de 2016 09:57
  • Bom dia Fabiano, muito obrigado pela resposta.

    Consegui achar na net um comando do windows: forfiles.

    Não sei se é o recomendado mas deu certo no meu caso, o comando que fiz foi:

    forfiles -p "Unidade:\diretorio\subdiretorio\subdiretorio" -s -d -30 -m *.zip -c "cmd /c del /f /q @path"

    Abraços.

    sexta-feira, 11 de novembro de 2016 13:14
  • André Batista, boa tarde!!

    Legal!! Uma opção a mais. Bacana mesmo, vou ficar com a dica também.

    Abraço!!


    FABIANO GUIMARÃES DE MELLO - Microsoft Certified IT Professional

    sexta-feira, 11 de novembro de 2016 16:15