
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:
- arquivoscria uma lista de arquivos para trabalhar: digamos... "C:\Este" e "C:\Isto\Aquilo"
- Você consegue "C:\Este"entregue a você
- Você exclui "C:\Este" recursivamente
- Você consegue "C:\Isto\Aquilo"entregue a você.
- 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).