我一直在尝试找出如何结合使用不同的批处理命令(复制,forfiles)来执行此操作,但我无法找出正确的方法,执行复制,重命名并考虑目录位置。
我有一个不同级别的目录结构,其中包含许多文件,但是它们大多数都具有“ folder.jpg”。
类似于:
我想对此进行扫描,对于找到的名为“ folder.jpg”的任何文件,进行复制,并将其重命名为“ child1-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] 删除。
我来说两句