Sou fã de manter as coisas simples, desde que isso não afete o desempenho ou a função. Você poderia adicionar ouvintes para detectar quando novos arquivos são adicionados e renomeá-los automaticamente, mas isso é uma complexidade que eu não estou particularmente interessado em aprender agora, muito menos explicando lol.
Portanto, um simples loop-if-then é o caminho que eu faria.
Primeiro de tudo, você precisa percorrer essas pastas:
Get-ChildItem "E:\Backup\ABLBackup" |
Where PSIsContainer |
Foreach-Object {}
De acordo com o que entendi, você precisa verificar se há um novo arquivo (basicamente um que não contenha uma data)
if (Get-ChildItem $_.FullName | Where Name -notlike "*_????_??_??.*") {}
Coloque tudo junto com seu roteiro, arrumado para se adequar:
Get-ChildItem "E:\Backup\ABLBackup" |
Where PSIsContainer |
Foreach-Object {
$newitem = Get-ChildItem $_.FullName | Where Name -notlike "*_????_??_??.*"
if ($newitem)
{
$dateSuffix = get-date -Format 'yyyy_MM_dd'
$newFileName = '{0}_{1}{2}' -f $newitem.BaseName, $dateSuffix, $newitem.Extension
Rename-Item $newitem -NewName $newFileName
}
}
Configure uma tarefa agendada para ser executada a cada meia hora ou algo assim e você está rindo.