Имена файлов должны быть от 0.jpg до 149.jpg
Используйте следующую команду PowerShell:
dir *.jpg | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) } | foreach-object -begin { $count=0 } -process { rename-item $_ -NewName "$count.jpg"; $count++ }
Заметки:
- $count=0начать отсчет с- 0.
- $_представляет каждый элемент, переданный команде rename-item через канал- |из команды- dir.
- foreach-objectпозволяет установить переменную (- $count) перед циклическим просмотром каждого файла в каталоге (соответствие- *.jpg), а затем выполнить действие (- rename-item) для каждого соответствующего элемента.
- Чтобы отсортировать вывод - dirв "естественном" порядке, мы используем:
 - Sort-Object { [regex]::Replace($_.Name, '\d+', { args[0].Value.PadLeft(20) }) }
 
Пример:
PS F:\test> dir *.jpg
    Directory: F:\test
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        01/04/2016     19:39         54 1.jpg
-a---        01/04/2016     19:39         54 10.jpg
-a---        01/04/2016     19:39         52 11.jpg
-a---        01/04/2016     19:39         54 2.jpg
-a---        01/04/2016     19:39         54 3.jpg
-a---        01/04/2016     19:35         52 4.jpg
-a---        01/04/2016     19:35         52 5.jpg
-a---        01/04/2016     19:39         51 6.jpg
-a---        01/04/2016     19:39         51 7.jpg
-a---        01/04/2016     19:39         54 8.jpg
-a---        01/04/2016     19:39         52 9.jpg
PS F:\test> dir *.jpg | Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) }) } | foreach-object -begin { $count=0 } -process { rename-item $_ -NewName "$count.jpg"; $count++}
PS F:\test> dir *.jpg
    Directory: F:\test
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        01/04/2016     19:39         54 0.jpg
-a---        01/04/2016     19:39         54 1.jpg
-a---        01/04/2016     19:39         52 10.jpg
-a---        01/04/2016     19:39         54 2.jpg
-a---        01/04/2016     19:35         52 3.jpg
-a---        01/04/2016     19:35         52 4.jpg
-a---        01/04/2016     19:39         51 5.jpg
-a---        01/04/2016     19:39         51 6.jpg
-a---        01/04/2016     19:39         54 7.jpg
-a---        01/04/2016     19:39         52 8.jpg
-a---        01/04/2016     19:39         54 9.jpg
PS F:\test>
Источник: пакетное переименование файлов с помощью Windows PowerShell. Скрипт был изменен в соответствии с требованиями вопроса.
Источник: Как отсортировать по имени файла так же, как это делает проводник Windows? Ответ Романа Кузьмина на естественную сортировку.