使用文件夹名称批量重命名文件?
我正在创建一个脚本,它将在文件夹的名称后重命名文件夹中的所有图像。这将用于一次重命名多个文件夹的图像值得的图像,因为我使用它来标准化我所有漫画的命名方案。所以我会说75 * .cbz在一个目录中被解压缩,然后我从包含子文件夹的文件夹中运行所述脚本,该文件夹包含构成每个漫画的图像以重命名每个图像。使用文件夹名称批量重命名文件?
的结构将是例如:
PageRenamer.bat
系列名称000(年)\
名称pg1.jpg,名称pg2.jpg ...名称pg24.jpg
系列名称001(年)\
系列名称001 000.jpg,系列名称001 001.JPG ...系列名称001 025.jpg
等...
最终的结果我要找的就是你运行该脚本后,每幅图像被命名为Series Name 001 (Year) 000.jpg
- Series Name 001 (Year) 025.jpg
(页数/图像可能会有所不同),并在Series Name 001 (Year)\
文件夹中居住。现在,这一切都希望我的漫画是单层档案。如果有一种方法可以将每个子文件夹(漫画根目录)中的子文件夹中的任何图像移动到根子文件夹(漫画根目录),则会更好。 例子:
PageRenamer.bat
系列名称000(年)\
系列名称000 \
名称pg1.jpg,名称pg2.jpg ...名称pg24.jpg
系列名称001(年)\
系列名称001 \
系列名称001 \
系列名称001 000.jpg,系列名称001 001.JPG ...系列名称001 025.jpg
等...
改变它相匹配的格式示例1(包括删除现在未使用的子文件夹)。任何帮助非常欢迎我会很高兴得到一个足够简单的脚本来完成第一个任务,因为大多数漫画都是一层。如果我不必担心修复那些没有的问题,那将是一笔巨大的奖励。
我只是在这里引用几行批处理脚本来指出正确的方向。你可以用这样的for循环,这将列出所有子目录中的文件夹的漫画开始:
for /d %%D in (*) do
然后有第二个for循环在那里,采取一切。JPG格式的每个子目录下并重新命名:
for %%f in (*.jpg) do (
#here you will want to craft a string for the filename, using the subdirectory name (%D)
ren "%%F" "your-crafted-string.jpg"
)
你需要跟踪变量来存储你处理的文件#命名:
set /A num=0
可以增加此each循环运行在内部循环:
set /A num+=1
和复位它的外环的每个增量(每个子目录):
set /A num=0
手工艺每个文件的最内层循环中的字符串看起来像这样(未经):
ren "%%F" "!%%D%_%num%!.jpg"
你可以看这是'重命名[文件]作为“[目录名] _ [价值[num] .jpg“
感谢您的帮助,但这些是我已经知道的基本事情,但无法找到使其工作的方法。特别是因为我想要一个000-025编号方案(实际上从0开始)而不是(1) - (26)方案。另外我不知道字符串操作或如何编写一个可以使用文件夹名称的字符串。你能帮忙吗?我使用了很多我编写的重命名脚本,但它们都是简单的,可以在“。”之前或之后进行更改。这标志着延伸。 – Dracrius
你可以编辑你的问题,告诉我们你试过了什么吗?我很乐意帮你弄清楚你的挂断位置。 – binaryatrocity
我一直重命名/移动/删除具有特定名称或扩展名的东西,以指定其他特定或基于文件原始名称的东西。我不知道如何在这个实例中设置变量来使用000 formate中的文件夹名称和数字。 – Dracrius
你当前的脚本是什么样的,你有什么问题? (帖子往往是关闭的,除非你已经显示了你已经尝试了什么,以及你遇到了什么问题) – admdrew
嗯,我已经搜索和搜索,我找到了100种不同的方式来重新命名它们全部用(1 ) - (25)编号方案,但这既丑陋又不如000-025方案的功能。无论如何,我无法找到这种方式,没有括号。我可以写一些我知道无法工作的bs脚本,但我没有看到这一点,因为正确执行此操作的脚本将完全不同。我也不知道如何将图像归档到每个文件夹根目录,但是就我而言,这是一个额外的代码行。 – Dracrius
Binaryatrocity的代码正是我所处的位置,我无法弄清楚如何使这个简单的代码正确执行此任务。特别使用文件夹名称和编号图像000-025,而不是重命名多个文件时使用的默认(1) - (26)。 – Dracrius