递归搜索,将jpg文件复制并重命名为父文件夹名称

米奇

我一直在尝试找出如何结合使用不同的批处理命令(复制,forfiles)来执行此操作,但我无法找出正确的方法,执行复制,重命名并考虑目录位置。

我有一个不同级别的目录结构,其中包含许多文件,但是它们大多数都具有“ folder.jpg”。

类似于:

  • parent \ child1 \ folder.jpg
  • parent \ child2 \ folder.jpg
  • parent \ child3 \ child4 \ folder.jpg
  • parent \ child3 \ child5 \ folder.jpg

我想对此进行扫描,对于找到的名为“ folder.jpg”的任何文件,进行复制,并将其重命名为“ child1-img.jpg”。然后,我将在我的结构中看到:

  • parent \ child1 \ folder.jpg
  • parent \ child1 \ child1-img.jpg
  • parent \ child2 \ folder.jpg
  • parent \ child2 \ child2-img.jpg
  • parent \ child3 \ child4 \ folder.jpg
  • parent \ child3 \ child4 \ child4-img.jpg
  • parent \ child3 \ child5 \ folder.jpg
  • parent \ child3 \ child5 \ child5-img.jpg

我可以从目录运行并且仅影响子目录的批处理脚本将是完美的。

非常感谢您提供的任何指导,如果我省略了任何重要细节,请告诉我。

编辑

@保罗

嗨,Paul,似乎想创建一个文件夹名称各部分的文件吗?我在下面有一个日志输出。我读对了吗?

  START LOOP
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\New-img.jpg"
  END LOOP
Press any key to continue . . .
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\A-img.jpg"
  END LOOP
Press any key to continue . . .
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\Test-img.jpg"
  END LOOP
Press any key to continue . . .
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\Second-img.jpg"
  END LOOP
Press any key to continue . . .
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\Test-img.jpg"
  END LOOP
Press any key to continue . . .
  COPY "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Folder\
folder.jpg" "C:\Users\Mikey\Desktop\blah\New Folder\A Test Folder\Second Test Fo
lder\Folder-img.jpg"
  END LOOP
保罗

这是与我的名字同名稍作修改的,名字中带有空格:)

@echo off
SETLOCAL
GOTO START

:START
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "usebackq tokens=*" %%D in (`dir /s /b folder.jpg`) DO (
    SET "DIRPATH=%%~dpD"
    SET "FILEPATH=%%~D"
    SET "FILENAME=%%~nD"
    ECHO:
    ECHO   START LOOP
    IF "!DIRPATH:~-1!" EQU "\" (
        SET "DIRPATH=!DIRPATH:~0,-1!"
    )

    FOR %%F IN ("!DIRPATH!") DO (
        SET "PICDIR=%%~nxF"
        ECHO   COPY "!FILEPATH!" "!DIRPATH!\!PICDIR!-img.jpg"
        ECHO   END LOOP
        PAUSE
    )
)
EXIT /B 0

注意:如果满意,请删除包含echo或的所有行pause,但COPY包含删除echo而不包含行的行除外

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何遍历子文件夹并重命名为父文件夹-文件夹-文件号

将子文件夹中的文件批量重命名为父文件夹名称

从终端递归将所有文件和文件夹重命名为Title Case

将文件夹中的文件重命名为一个名称

Windows CMD-如何将所有子文件夹中的所有文件重命名为父文件夹名称

递归地将文件夹重命名为@eaDir

如何将特定文件重命名为许多文件夹的文件夹名称

将图像批量重命名为文件夹名称+序列号

如何批量将文件重命名为文件夹名称+递增编号?我收到名称重复错误

将文件复制到其他文件夹,然后将其重命名为当前日期

将多个文件夹中的重复文件名重命名为另一个名称

将工作表批量重命名为特定文件夹中的工作簿(文件)名称

如何使用python将放在多个嵌套文件夹中的文档移动并重命名为新的单个文件夹?

如何将colab我的云端硬盘文件夹重命名为其他名称?

在终端中将文件重命名为父目录的名称

将文件从子文件夹复制到父文件夹并使用父文件夹名称重命名文件

使用powershell将多个文件夹重命名为大写而不是文件

(Automator / AppleScript)将文件重命名为文件夹名称,保存到其他文件夹并添加前缀

WebStorm 在终端中打开文件夹并自动将会话重命名为文件夹名称

将网络文件夹中具有不同名称的FTP文件夹上的图片重命名为1个文件(替代)

以递归方式将输出 PDF 文件重命名为子目录名称 Powershell

将文件夹重命名为音乐的ID3标签?

从子文件夹复制文件并重命名

将第一个图像文件从子文件夹复制到父文件夹并重命名

是否可以使用Powershell或批处理文件将文件夹中的每个文件重命名为另一个名称?

使用 PowerShell 将文件夹中的所有文件重命名为上次写入时间的每个文件

如何在Powershell中复制文件夹并将其重命名为当前日期和时间?

mmv 不将文件 .JPG 重命名为 .jpg

如何将文件夹内的文件重命名为其对应的md5sum?