@echo off & title 批量给最底层目录中的文件添加其文件夹名 By 依梦琴瑶
cd /d "%~dp0"
for /r /d %%a in (*) do (
pushd "%%~a"
set "DEST="
for /d %%b in (*) do set DEST=OK
if not defined DEST (
for /f "tokens=1-4 delims=-" %%c in ("%%~nxa") do (
for /f "delims=" %%i in ('dir /a-d/b *.jpg *.png *.jpeg') do (
ren "%%~i" "%%~c-%%~d-%%~e-%%~f-%%~i" >nul && (
echo "%%~i" --^>^> "%%~c-%%~d-%%~e-%%~f-%%~i"
)
)
)
)
popd
)
pause
call :ToMe
exit
:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit
@echo off
set #=Any question&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad/b/s') do (
set "n="
for /f "delims=" %%b in ('dir /ad/b "%%a" 2^>nul') do set /a n+=1
if not defined n (
for /f "delims=" %%c in ('dir /a-d/b "%%a" 2^>nul') do (
set "file=%%a\%%~nxc"
for /f "tokens=1-4* delims=-" %%d in ("%%~nxa") do set "newname=%%d-%%e-%%f-%%g-%%~nxc"
setlocal enabledelayedexpansion
echo;"!file!" --^> "!newname!"
ren "!file!" "!newname!"
endlocal
)
)
)
echo;%#% +%$%%$% %z%
pause
建议改道用vba解决。