У меня есть куча фотографий с разными именами.
Я хочу дать каждой фотографии случайное имя(*), как мне это сделать?
(*)Я собираюсь поместить их на цифровую фоторамку, которая не может перемешать
У меня есть куча фотографий с разными именами.
Я хочу дать каждой фотографии случайное имя(*), как мне это сделать?
(*)Я собираюсь поместить их на цифровую фоторамку, которая не может перемешать
предположим, что все изображения находятся в одной папке, это будет работать в 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.
один из способов, если у вас есть 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
for f in *; do ext=$(echo "$f" | sed 's|\([^.]*\)||'); mv "$f" "$(uuidgen)$ext"; done
большинство переименовщиков пакетных файлов могут это сделать,вот один
легкий метод был бы сделать последовательную оцифровку файла, я уверен там другие варианты с этим программным обеспечением, использует ваше воображение.
вот тот, который я использую для массового переименования задачи
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]