@echo off
setlocal enabledelayedexpansion
set "folder=D:\待处理"
::格式化文件夹名
for /f "delims=" %%a in ('type "D:\文本A.txt"') do (
for /f "delims=" %%b in ('dir /ad /b "!folder!\" ^|find "%%a"') do (
set "tmpname=%%b"
set "tmpname=!tmpname:%%a=-%%a-!"
set "tmpname=!tmpname:--=-!"
set "tmpname=!tmpname:---=-!"
set "tmpname=!tmpname:----=-!"
set "tmpname=!tmpname:-----=-!"
set "tmpname=!tmpname:------=-!"
if "!tmpname:~,1!" == "-" (set "tmpname=!tmpname:~1!")
if "!tmpname:~-1!" == "-" (set "tmpname=!tmpname:~,-1!")
ren "%%b" "!tmpname!"
)
)
::建立子文件夹
for /f "delims=" %%a in ('dir /ad /b "!folder!\"') do (
cd /d "!folder!\%%a\"
set name="%%a"
set name=!name:-=","!
set n=1
echo !name!
for %%b in (!name!) do (
set t=%%b
find %%b "D:\文本A.txt" && md "!n!!t:~1,-1!\" && set /a n+=1
)
)
::移动图片
for /f "delims=" %%a in ('dir /ad /b "!folder!\"') do (
echo "!folder!\%%a\"
cd /d "!folder!\%%a\"
set /a m=s=0
for /f "delims=" %%b in ('dir /ad /b') do set /a m+=1
for %%c in (*.jpg) do set /a s+=1
set /a r=s/m,z=0
for %%b in (*.jpg) do (
for /f "delims=" %%i in ('dir /ad /b "!m!*"') do set files=%%i
move "%%b" "!files!\" 2>nul
set /a z+=1
if !z! == !r! set z=0 & set /a m-=1
)
)
pause
追问
上图为原文件夹,下图为处理后的文件夹,照片被移到”D:\“下了,文件夹名称也没有改变哦
追答16行ren "%%b" "!tmpname!"更改为ren "!folder!\%%b" "!tmpname!"