Como renomeio arquivos em um lote com um contador?

0

Eu 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 October981016 .

Eu quero que todas as imagens sejam nomeadas 19981016_0001 19981016_0002 etc.

Eu posso chegar ao ponto de listar a pasta que desejo alterar, mas não consigo alterá-la. Todas as minhas fotos são .jpg.

Eu criei um arquivo temporário de cópias no caso de eu estragar tudo. Comecei digitando:

cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp" 

depois de conseguir que meu arquivo seja carregado, 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 foi dito

Unexpected token ' .19981016' in expression or statement.

At line:1 char:12 + $.19981016 <<<<

O erro repetido várias vezes

Eu encontrei várias fórmulas na web, mas a maioria dos arquivos criados que numeram com parênteses, por exemplo vacation (1) .jpg Eu quero um contador de quatro dígitos após um sublinhado no final do meu encontro. ou seja, 19981016_0001

    
por Brooke 19.08.2013 / 00:11

1 resposta

0

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 formatação - é mais fácil usar o formato D #, mais fácil contar quantos dígitos você terá no final ...
por 19.08.2013 / 10:06

Tags