2014-11-15 2 views
-1

У меня возникла проблема с переименованием 50 000 файлов, разделенных на многочисленные папки. проблема в том, что исходное последовательное именование все массируется, потому что некоторые файлы были удалены, поэтому счетчик перескакивает, скажем, от 0005 до * 0007.Добавить счетчик как суффикс ко всем файлам в подпапках

Я хочу переименовать все файлы во всех подпапках, так что суффикс будет 4-значным числом, основанным на текущем порядке файлов. Самое главное, что я хочу, чтобы счетчик перезапускался в каждой папке.

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

Все, что мне нужно сделать, это добавить еще один счетчик в конце!

+0

Звучит как план. Удачи! – Swonkie

+0

В чем вопрос? – alroc

ответ

0

Если вы хотите, чтобы счетчик перезапускался в каждой папке, вам необходимо отделить рекурсию папки от перечисления/переименования файлов TIFF в каждой папке. Попробуйте что-то вроде этого:

Get-ChildItem -LiteralPath 'C:\test' -Recurse | ? { $_.PSIsContainer } | % { 
    $cnt = 0 
    Get-ChildItem -LiteralPath $_.FullName -Filter '*.tif' | % { 
    Rename-Item -LiteralPath $_.FullName -NewName ("IL-TRUM_{0}_{1}_{2:d4}{3}" -f $_.Directory.Name, $_.Name, $cnt, $_.Extension) 
    $cnt++ 
    } 
} 
Смежные вопросы