@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
::解决文件名中有叹号问题
set input1count=0
set input2count=0
set i1=0
set i2=0
set size=0
color 3f
::上方变量勿改
set order=n
set f1ext=.mkv
set f2ext=.ass
set f1path="%~dp0"
set f2path="%~dp0"
set logpath="%~dp0\rlog.txt"
::goto :recback
del %logpath%
:matchlog
for /f "delims=" %%i in ('dir %f1path% /b /o:%order%') do (
if %%~xi==%f1ext% (
SETLOCAL ENABLEDELAYEDEXPANSION
set /a i1+=1
set i2=0
for /f "delims=" %%j in ('dir %f2path% /b /o:%order%') do (
if %%~xj==%f2ext% (
set /a i2+=1
::不能直接改名字,否则排列顺序将变化,写入日志在日志中改吧
if !i1!==!i2! setlocal disabledelayedexpansion & call :rlog "%%i" %f2path%\"%%j" ))))
echo :%date%_%time%,%i1% >> %logpath%
call :changename
pause
goto :eof
::根据日志改名字
:changename
for /f "usebackq eol=: tokens=1,2 delims=|" %%a in (%logpath%) do (
echo %%a -^> %%b
ren %%a %%b )
goto :eof
:recback
for /f "usebackq eol=: tokens=1,2 delims=|" %%a in (%logpath%) do (
echo "%%~dpa%%~nxb" -^> %%~nxa
ren "%%~dpa%%~nxb" %%~nxa )
goto :eof
:rlog
echo %2^|"%~n1%~x2">>%logpath%
goto :eof