Exclua arquivos com o Agendador de tarefas usando ForFiles

Exclua arquivos com o Agendador de tarefas usando ForFiles

Estou tentando excluir todas as pastas e arquivos todas as noites usando o agendador de tarefas. Estou usando o seguinte comando nas ações:

Programa/Script: forfiles
Argumentos:/S /P C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup /C "cmd /c if @isdir==TRUE rd /s /q @file"

Isso não exclui nenhum arquivo ou pasta. O que estou faltando neste exemplo?

Isso parece funcionar, mas gera um erro: /S /P "C:\Users\Sales\AppData\Roaming\Apple Computer\MobileSync\Backup" /C "cmd /c rd /s /q @file

Erro:

C:\Users\david>forfiles /S /P "C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup"  /C "cmd /c rd /s /q @file

ERROR: The system cannot find the file specified.

C:\Users\david>

Responder1

Por que você está pesquisando subdiretórios quando planeja destruir tudo com "rd /s /q"?

O que vocêpoder(provavelmente) estão vendo é isto:

  1. arquivoscria uma lista de arquivos para trabalhar: digamos... "C:\Este" e "C:\Isto\Aquilo"
  2. Você consegue "C:\Este"entregue a você
  3. Você exclui "C:\Este" recursivamente
  4. Você consegue "C:\Isto\Aquilo"entregue a você.
  5. Você recebe um erro ao excluí-lo porque ele não existe.

Uma outra condição também pode acontecer! Pode haver um identificador de arquivo aberto ao enumerar a árvore, então quando você tentar excluir "C:\Este","C:\Isto\Aquilo"ainda está bloqueado por forfiles. Não sei se forfiles foi escrito para contornar isso, mas tenhoclaro que simencontrar isso durante a programação.

Sugestão: Retire o /S dearquivos(melhor) OU adicione "blá, blá, blá..se existir @arquivo"blá, blá, blá (não é o melhor).

informação relacionada