我需要运行一个bat文件来重命名每个子文件夹中的照片作为子文件夹名称,并将所有照片复制到一个新文件夹。每个子文件夹只包含一张照片。
我想写一个批处理文件来执行此任务,因为有很多子文件夹,但是,我只能在最后一个子文件夹中成功复制照片。
子文件夹按照从“00000001”开始的编号顺序命名。
我发现照片被重命名为相同,因此只能复制一张照片。
这是我的代码:
md "D:\photo"
for /r %%d in (.) do (cd %%d
for /r %%* in (.) do (set CurrDirName=%%~n*
echo %CurrDirName%
ren "*.jpg" "%CurrDirName%.jpg"
copy *.jpg "D:\photo"))
请提出建议,以便我可以修改我的代码并做我想成功做的事情,非常感谢!
编辑更多详情
在cmd行中,例如程序在子程序员“00000127”中运行 设置CurrDirName = 00000127 但是回显%CurrDirName%,显示00000128这是最后一个子文件夹,每个子文件夹返回00000128而不是CurrDirName
答案 0 :(得分:1)
试试这个&如果输出正常,请删除echo
。
@echo off &setlocal
set "destination=d:\photo"
md "%destination%" 2>nul
for /d /r %%d in (*.*) do (
pushd "%%d"
for %%i in (*.*) do echo copy "%%~i" "%destination%\%%~nd.jpg"
popd
)
endlocal
每个子文件夹中必须有只有一张照片!