Так что я почти закончил то, что намеревался сделать. Я хочу отформатировать кучу изображений в папке в определенный формат «Изображение 0000», но когда я добираюсь до десятого изображения, формат переходит к «Изображение 00010»

Как мне сказать, чтобы вычитать один 0, когда он достигает 10, когда он достигает 100 и когда он достигает 1000.

Вот мой текущий код:

dir | %{$x=1} {Rename-Item $_ -NewName "Picture 000$x.jpg"; $x++ }

Спасибо, Апплето

dir | %{$x=0001} {Rename-Item $_ -NewName "Picture $x.jpg"; $x++ }
0
Appletatoes 17 Авг 2019 в 23:31

2 ответа

Лучший ответ

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

Что-то вроде этого

$i = 0
Get-Childitem -Path 'THE FOLDER WHERE THE IMAGES ARE' -Filter '*.jpg' -File | ForEach-Object { 
    $_ | Rename-Item -NewName ('Picture {0:0000}.jpg' -f $i++) 
}
0
Theo 18 Авг 2019 в 09:12

Вы можете использовать оператор формата строки -f, чтобы добавить начальные нули к числу:

dir | %{$x=1} {Rename-Item $_ -NewName ('Picture {0:0000}.jpg' -f $x); $x++ }
0
Mathias R. Jessen 18 Авг 2019 в 01:19