在 shell 中预先添加文件名

在 shell 中预先添加文件名

我的文件夹中有 100 个 .png 文件,例如 test.png、example.png 等等。

我想在它们前面加上,New_以便将其重命名为New_test.pngNew_example.png等等。

我怎样才能在 shell 中做到这一点?

答案1

您没有指定操作系统。此答案假设使用 Windows。

我的第一个想法是一个简单的命令,例如

for %f in (*.png) do rename "%f" "New_%f"

但是,名为的文件a.png首先被重命名为New_a.png,并按字母顺序向下移动 :-( 循环将此文件重命名为第二时间到 New_New_a.png。

因此,这必须分两个步骤进行:

dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt

第一行创建一个文本文件,其中包含当前目录中所有 png 文件的名称。第二行解析文件的每一行并重命名 png。

相关内容