Как пакетно переименовать файлы со случайным именем

У меня есть куча фотографий с разными именами.


Я хочу дать каждой фотографии случайное имя(*), как мне это сделать?

(*)Я собираюсь поместить их на цифровую фоторамку, которая не может перемешать

29
задан Nifle
22.03.2023 10:56 Количество просмотров материала 2713
Распечатать страницу

4 ответа

предположим, что все изображения находятся в одной папке, это будет работать в PowerShell:

Get-ChildItem *.jpg | ForEach-Object{Rename-Item $_ -NewName "$(Get-Random)-$($_.Name).jpg"}

возможно, что вы получите потенциальные конфликты имен, но Get-Random по умолчанию возвращает 32-битный беззнаковый int от 0 до Int32.MaxValue (от 0 до 2147483647). Вы, безусловно, можете добавить еще один Get-Random, чтобы уменьшить вероятность столкновения, как и в ответе Bash.

6
отвечен EBGreen 2023-03-23 18:44

один из способов, если у вас есть bash, то удобно использовать $RANDOM переменные среды. Он генерирует случайные значения от 0 до 32767.

простой цикл for в bash работает нормально, если у вас есть только несколько сотен файлов.

for i in *.jpg; do mv -i "$i" ${RANDOM}.jpg; done

так как у меня было около 4000 файлов, чтобы переименовать я вскоре получил столкновения, что -i флаг mv поймали. Добавление еще $RANDOM позаботился об этом.

for i in *.jpg; do mv -i "$i" ${RANDOM}${RANDOM}.jpg; done
8
отвечен Nifle 2023-03-23 21:01

for f in *; do ext=$(echo "$f" | sed 's|\([^.]*\)||'); mv "$f" "$(uuidgen)$ext"; done

4
отвечен user495470 2023-03-23 23:18

большинство переименовщиков пакетных файлов могут это сделать,вот один

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

вот тот, который я использую для массового переименования задачи

0
отвечен Moab 2023-03-24 01:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх