【问题标题】:Bulk renaming files in relation to the folder names根据文件夹名称批量重命名文件
【发布时间】:2013-06-28 05:08:01
【问题描述】:

我对编码和批量处理非常陌生,但我正在寻找专门用于 Windows 命令提示符的命令行,我想知道是否存在这样的东西。所以我有一个包含 111 个子文件夹的文件夹,每个子文件夹包含 20 到 40 个 png 图像文件。每个子文件夹相应地命名为 001-111,并且 png 文件按照我想要的方式排序,但是我正在寻找一个命令行,它能够快速有效地将文件夹中的所有 png 命名为文件夹的名称,然后括号中的 png 编号

例如对于文件夹 037,我希望将 png 重命名为:037(1)、037(2)、037(3) 等...

虽然我不确定这样的代码可能无法实现或简单地完成,但我希望最好。

另外,如果你想出一个实现这个过程的代码,如果你能用我可以使用的简单命令行而不是完整的解释来回复,那就太好了,因为我是编码新手,对语言或术语或事物的运作方式。我知道可以通过 select all>rename (ctrl a>f2) 并重命名为文件夹名称来实现相同的过程,但是我需要经常使用此过程并且不想打开每个文件夹,我宁愿有一个 cmd 的命令行可以快速完成

谢谢你,一个简单的回答将不胜感激

【问题讨论】:

  • [哲学] 当人们不想知道也不想知道的时候,这是一种可悲的状态。但我承认在汽车问题上是一样的。当这种越来越普遍的态度出现在自称有资格在所讨论的主题中的人身上时,就变得可悲了。我们不可能都是爱迪生,但如果每个人都采取这种态度,我们仍然生活在洞穴中。[/philosophy]
  • 请注意,1,2,3,4,5,6,7,8,9,10,11 在文件夹中不会正确排序。通常的解决方案是将文件名填充为 0001 0002

标签: cmd rename subdirectory bulk


【解决方案1】:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "parentdir=u:\parent"
FOR /l %%a IN (1001,1,1111) DO (
 SET dir=%%a&SET "dir=!dir:~1!"
 FOR /f "delims=" %%i IN ('dir /a-d /b "%parentdir%\!dir!\*.png" 2^>nul') DO (
  ECHO REN "%parentdir%\!dir!\%%~nxi" "!dir!(%%~ni)%%~xi"
 )
)
GOTO :EOF

测试结果:
起始目录:

u:\parent\001\1.png
u:\parent\037\1.png
u:\parent\037\2.png
u:\parent\111\999 with spaces in name.png

脚本响应

REN "u:\parent\001\1.png" "001(1).png"
REN "u:\parent\037\1.png" "037(1).png"
REN "u:\parent\037\2.png" "037(2).png"
REN "u:\parent\111\999 with spaces in name.png" "111(999 with spaces in name).png"

显然,您需要将分配给 parentdir 的值替换为您的实际目标目录名称。

脚本将报告它建议进行的重命名。要实际调用 rename,请删除 ECHO 关键字。

【讨论】:

    【解决方案2】:

    我会像这样创建一个批处理文件:

    重命名png.bat:

    cd %%1
    if ERRORLEVEL 1 goto end
    for %f in *.png do mv "%f" "%%1(%f).png" 
    cd ..
    :end
    

    这将尝试 cd 到命令行中提供的目录名,如果失败则中止,然后重命名所有 .png 文件并返回到上一个目录

    然后这样称呼它:

    for %d in ??? do call renamepng.bat %d
    

    它将遍历当前目录中的所有 3 字符文件和目录名称,可以在每个文件上调用批处理文件。使用 call 而不是只使用批处理文件名会导致批处理完成时执行返回到循环。

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2014-12-11
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多