gpt4 book ai didi

windows - 将 jpg 文件递归搜索、复制和重命名为父文件夹名称

转载 作者:可可西里 更新时间:2023-11-01 11:49:56 31 4
gpt4 key购买 nike

我一直在尝试弄清楚如何使用不同批处理命令(复制、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

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

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

编辑

@保罗

嗨,保罗,似乎想要用文件夹名称的每一部分创建一个文件?我在下面有一个日志输出。我没看错吗?

  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而不是这条线。

关于windows - 将 jpg 文件递归搜索、复制和重命名为父文件夹名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32466884/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com