Batch file 是否使用文件夹名批量重命名文件?

Batch file 是否使用文件夹名批量重命名文件?,batch-file,Batch File,我想创建一个脚本,将重命名文件夹中的所有图像后,他们在文件夹的名称。这将用于一次重命名多个文件夹的图像,因为我正在使用它来标准化我所有漫画的命名方案。所以我会说75*.cbz的ill unarchive在一个目录中,然后我会在一个包含子文件夹的文件夹中运行脚本,其中包含组成每个漫画的图像,以重命名每个图像 例如,结构将是: 页面重命名器 系列名称000(年份)\ 名称pg1.jpg,名称pg2.jpg。。。名称pg24.jpg 系列名称001(年份)\ 系列名称001 000.jpg,系列名称0

我想创建一个脚本,将重命名文件夹中的所有图像后,他们在文件夹的名称。这将用于一次重命名多个文件夹的图像,因为我正在使用它来标准化我所有漫画的命名方案。所以我会说75*.cbz的ill unarchive在一个目录中,然后我会在一个包含子文件夹的文件夹中运行脚本,其中包含组成每个漫画的图像,以重命名每个图像

例如,结构将是:

页面重命名器

系列名称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)\
文件夹中。现在我希望我的漫画是单层档案。如果有一种方法能够将每个子文件夹(漫画根目录)中子文件夹中的任何图像移动到根子文件夹(漫画根目录)中,那就更好了。 例如:

页面重命名器

系列名称000(年份)\

系列名称000\

名称pg1.jpg,名称pg2.jpg。。。名称pg24.jpg

系列名称001(年份)\

系列名称001\

系列名称001\

系列名称001 000.jpg,系列名称001 001.jpg。。。系列名称001 025.jpg

等等


更改它以匹配示例1的格式(包括删除现在未使用的子文件夹)。任何帮助都是非常欢迎的,我很乐意得到一个足够简单的脚本来完成第一个任务,因为大多数漫画都是单层的。如果我不必担心如何修复那些不需要的,那将是一个巨大的奖励。

我将在这里抛出几行批处理脚本,为您指明正确的方向。您可以从这样的forloop开始,它将列出comic文件夹中的所有子目录:

  for /d %%D in (*) do
然后在其中添加第二个forloop,以获取每个子目录中的所有.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
您可以在内部循环中每次循环运行时增加此值:

 set /A num+=1
并为外部循环(每个子目录)的每个增量重置它:

在最里面的循环中为每个文件制作一个字符串,看起来像这样(未测试):


您可以将其理解为`将[文件]重命名为“[Directory name].[value of num].jpg”

您当前的脚本是什么样子的,您有什么问题?(除非你展示了你已经尝试过的内容,以及你遇到的问题,否则帖子往往会被关闭)好吧,我搜索了又搜索,我找到了100种不同的方法,用(1)-(25)编号方案来重命名它们,但这既丑陋又没有000-025方案那么有效。我无论如何也找不到这样没有括号的数字。我可以写一些我知道不起作用的bs脚本,但我看不出有什么意义,因为一个正确地完成这项工作的脚本将是完全不同的。我也不知道如何将图像移动到每个文件夹根目录下进行归档,但就我而言,这是一个额外的代码行。BinaryBarrity的代码正是我所处的位置,我不知道如何让简单的代码正确地完成这项任务。特别是使用文件夹名称和图像编号000-025,而不是重命名多个文件时使用的默认(1)-(26)。感谢您的帮助,但这些是我已经知道的基本内容,但我无法找到使其工作的方法。特别是因为我想要一个000-025编号方案(实际上从0开始),而不是(1)-(26)方案。另外,我不知道字符串操作,也不知道如何编写使用文件夹名称的字符串。你能帮忙吗?我使用了很多我写过的重命名脚本,但它们都很简单,可以在标记扩展名的“.”之前或之后更改内容。您能编辑您的问题以向我们展示您的尝试吗?我很乐意帮你找出挂断电话的地方。我总是使用非常特定的名称或扩展名来重命名/移动/删除某些东西,或者基于文件的原始名称。我不知道如何在这个实例中设置变量,以使用文件夹名称和/或000格式的数字。我已经更新了一点答案,让您继续!祝你好运。到目前为止没有运气。这是我正在尝试的@对于(*.jpg)do中的/r%%f(set/A num=000 ren“%%f”“!%%D%%num%!.jpg”set/A num+=1)
 set /A num=0
 ren "%%F" "!%%D%_%num%!.jpg"