Script Powershell para retornar diretórios sem um arquivo Zip criado / modificado nos últimos 7 dias

0

Eu tenho uma série de pastas em um servidor que precisa ser verificada regularmente de que estão sendo copiadas corretamente. Gostamos de ter pelo menos um backup nessa pasta que não tenha menos de 7 dias. Os backups estão no formato .zip.

Eu quero poder ver os diretórios que não contêm arquivos zip que foram modificados ou criados nos últimos 7 dias.

Aqui está um exemplo de como é a estrutura do arquivo:

\server01\backups\PLANT1\A
\server01\backups\PLANT1\B
\server01\backups\PLANT2\A
\server01\backups\PLANT2\B
...etc

Consegui montar um script powershell que retorna o diretório inteiro de arquivos zip e outro que lista os que foram modificados nos últimos 7 dias, mas não aquele que retorna apenas os diretórios daqueles que não têm o arquivos que precisamos.

Aqui está o script que acabei de mencionar:

$DateToCompare = (Get-date).AddDays(-7)
Get-ChildItem \server01\backups -recurse -include *.zip | Where {(!$_.PsIsContainer) -and ($_.lastwritetime -gt $DateToCompare)} | select DirectoryName,Name,LastWriteTime | sort DirectoryName

Sua orientação é muito apreciada.

Editar:

Aqui está o código em sua forma final. Eu estava muito perto.

$DateToCompare = (Get-Date).AddDays(-7)
Get-ChildItem \server01\backups -recurse -include *.zip | Where {(!$_.PsIsContainer) -Notcontains ($_.creationtime -gt $DateToCompare)} | select DirectoryName,Name,CreationTime | sort DirectoryName
    
por cyborgcommando0 13.11.2013 / 21:28

1 resposta

1

A única peça do quebra-cabeça que você está perdendo aqui é a bandeira "-notcontains", a ser declarada na sua cláusula "Where". Você sabe exatamente o que você quer tirar livrar , mas o código que você postou mostra exatamente o que você não quer. Escolha "excluir" em vez de "selecionar apenas" os itens especificados com -notcontains.

Fonte: link

    
por 14.11.2013 / 01:45