如何批量重命名文件并赋予其随机名称

如何批量重命名文件并赋予其随机名称

我有一堆不同名称的照片。
我想给每张照片起一个随机名称(*), 我怎么做?

(*)我要把它们放在不能随机播放的数码相框里

答案1

假设所有图像都在一个文件夹中,那么这将在 Powershell 中起作用:

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

您可能会遇到潜在的名称冲突,但默认情况下 Get-Random 返回 32 位无符号整数,范围从 0 到 Int32.MaxValue(0 到 2147483647)。您当然可以添加另一个 Get-Random 来降低发生冲突的可能性,就像在 Bash 答案中一样。

答案2

如果您手边有 bash shell,一种方法是使用$RANDOM环境变量。它会生成 0 到 32767 之间的随机值。

如果您只有几百个文件,那么 bash 中的一个简单的 for 循环就可以正常工作。

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

-i由于我有大约 4000 个文件需要重命名,因此我很快就遇到了标志可以捕获的冲突mv。添加另一个标志$RANDOM可以解决这个问题。

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

答案3

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

答案4

大多数批处理文件重命名器都可以做到这一点,这是一个

简单的方法是对文件进行连续编号,我相信这个软件还有其他选项,发挥您的想象力。

这是我使用的用于批量重命名任务

相关内容