Arquivo em lote para excluir arquivos por idade [duplicado]

1

Eu tenho um diretório que está configurado como \ server \\ ano \ mês \ dia \ x, ... / y e ... / z. Eu preciso de um arquivo em lotes que irá excluir vídeos localizados na pasta x no diretório de cada usuário para cada mês dia e ano com base em um período de retenção (ou seja, 60 dias). Em seguida, exclua os arquivos em Y com base em um período diferente (730 dias)

Eu tenho forfiles -p "\server\username\year\month\day\x" -s -m *.* -d -60 -c "cmd /c del @path" , mas não sei como fazer o loop no caminho para pesquisar todos os subdiretórios da pasta de rede para localizar apenas as pastas X.

Existe uma maneira de fazer isso sem usar o atributo criado na data, apenas no caso de a data / hora da câmera estar incorreta quando o vídeo foi tirado. Obrigado antecipadamente pela ajuda! (Se alguém souber uma sintaxe que eu possa pesquisar eu agradeceria muito)

    
por Justin 22.10.2015 / 19:52

1 resposta

0

forfiles não aceita caminhos UNC AFAIK, você precisa associar esse endereço de rede a uma letra de unidade ("S:" como Servidor, por exemplo)

net use S: \server\username\year\month\day\ /PERSISTENT:YES

Em seguida, teste seu primeiro comando, usando echo em vez de del , como sugeriu @JosefZ em seu comentário:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE echo @path"

Você não precisa da máscara genérica *.* , isso é implícito. Use a opção -m apenas para filtrar classes de arquivo específicas (ex. *.mp4 ).

Assim que estiver satisfeito com os resultados, experimente:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE del /f @path"

forfiles -p S:\y -s -d -730 -c "cmd /c if @isdir==FALSE del /f @path"
    
por 24.10.2015 / 13:32

Tags