
Tenho 14.000 fotos classificadas em arquivos por ano e mês, mas tiradas com várias câmeras. Quero que o nome do arquivo reflita a data em que a foto foi tirada.
Por exemplo, todas as fotos tiradas em 16 de outubro de 1998 estão em uma pasta chamada 1998\10 October\19981016
.
Quero que todas as fotos sejam nomeadas 19981016_0001 19981016_0002 etc.
Posso chegar ao ponto em que lista a pasta que desejo alterar, mas não consigo alterá-la. Todas as minhas fotos são .jpg.
Criei um arquivo temporário de cópias, caso eu estragasse tudo. Comecei digitando:
cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp"
depois de carregar meu arquivo com sucesso, usei uma fórmula que encontrei neste fórum.
ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}
O erro que recebi disse
Unexpected token ' .19981016' in expression or statement.
At line:1 char:12 + $.19981016 <<<<
O erro se repetiu várias vezes
Encontrei várias fórmulas na web, mas a maioria criou arquivos que seriam numerados entre parênteses, por exemplo férias (1).jpg Quero um contador de quatro dígitos após um sublinhado no final da minha data. ou seja, 19981016_0001
Responder1
Acho que você modificou a fórmula e cometeu pelo menos dois erros:
Rename-Item $_
-> caso contrário, o PowerShell tentará renomear o arquivo chamado "_""$($_.Directory.Name)_{0:D9}.jpg" -f $i++
- você precisa pegar o nome do diretório do objeto atual e para formatar - é mais fácil usar o formato D#, mais fácil contar quantos dígitos você obtém no final...