Editado para incluir o arquivo de texto solicitado de
c:\logs\iis\siteA\ -30
c:\logs\job1\ -60
e:\archive\clientA\ -90
Eu testei os novos pedaços de código separadamente do que eu tinha por aí, mas ainda assim deveria fazer o que você quer, eu acho.
$controlfile = "c:\path\to\yourfile.txt"
$curr_date = Get-Date
New-Item -ItemType directory -Path f:\delete
foreach ($line in get-content $controlfile)
{
$split = $line.split(" ")
$file_path = $split[0]
$max_days = $split[1]
$del_date = $curr_date.AddDays($max_days)
# move the files to the kill directory
Get-ChildItem $file_path | Where-Object { $_.LastWriteTime -lt $del_date } | Move-Item -destination "f:\delete"
}
O motivo pelo qual ele é movido para um diretório diferente é porque há aparentemente um bug em exclusões recursivas , e meus dados são muitos, muitos subdiretórios de profundidade, então uma vez que eu mudei tudo para o diretório kill, eu corro isto:
del /f/s/q f:\delete > nul
rmdir /s/q f:\delete
Se você não tiver esse problema, adicione-o ao final da parte superior do PowerShell:
$del_dir = "f:\delete"
$fso = New-Object -ComObject scripting.filesystemobject
$fso.DeleteFolder($del_dir)