У меня есть 14 000 изображений, отсортированных по файлам по годам и месяцам, но снятых несколькими камерами. Я хочу, чтобы имя файла отражало дату, когда была сделана фотография.

Например, все снимки, сделанные 16 октября 1998 года, находятся в папке с именем 1998\10 October\19981016 .

Я хочу, чтобы все фотографии были названы 19981016_0001 19981016_0002 и т.д.

Я могу добраться до того места, где он перечисляет папку, которую я хочу изменить, но я не могу ее изменить. Все мои фотографии .jpg.

Я создал временный файл копий на случай, если я испортил его. Я начал с того, что набрал:

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

затем, после успешного получения файла, я использовал формулу, найденную на этом форуме.

ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}

Ошибка, которую я получил, сказал

Unexpected token ' .19981016' in expression or statement.

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

Ошибка повторилась несколько раз

Я нашел несколько формул в Интернете, но большинство созданных файлов, которые нумеруются с круглыми скобками, например, отпуск (1).jpg Я хочу четырехзначный счетчик после подчеркивания в конце моей даты. т.е. 19981016_0001

1 ответ1

0

Я думаю, что вы изменили формулу и сделали по крайней мере две ошибки:

  • Rename-Item $_ -> в противном случае PowerShell попытается переименовать файл с именем "_"
  • "$($_.Directory.Name)_{0:D9}.jpg" -f $i++ - вам нужно получить имя каталога текущего объекта, а для форматирования - проще использовать формат D #, проще подсчитать, сколько цифр вы получите в итоге .. ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .