[code=BatchFile]@echo off
setlocal enabledelayedexpansion
rem 指定源文件夹路径
set SrcFolder=C:\test\A
rem 指定目标文件夹路径
set DstFolder=C:\test\B
rem 计数器初始化
set count=0
rem 生成文件名列表
>"%Temp%\ListA.txt" dir /b "%SrcFolder%"
>"%Temp%\ListB.txt" dir /b "%DstFolder%"
rem 修改第一个文件名
set /p FirstA=<"%Temp%\ListA.txt"
set /p FirstB=<"%Temp%\ListB.txt"
ren "%DstFolder%\%FirstB%" "%FirstA%"
rem 修改剩下的所有文件名
for /f "usebackq skip=1 delims=" %%a in ("%Temp%\ListA.txt") do (
rem 计数器加1
set /a count+=1
rem 调用改名子过程
call :SyncName %%a !count!
)
endlocal
rem 打完手工
goto :eof
rem 改名子过程
:SyncName
for /f "usebackq skip=%2 delims=" %%a in ("%Temp%\ListB.txt") do (
ren "%DstFolder%\%%a" "%1"
goto :eof
)[/code]
如果对批处理感兴趣,建议找个批处理论坛,系统地学习一下。
[code=BatchFile]@echo off
setlocal enabledelayedexpansion
set SrcFolder=C:\test\A
set DstFolder=C:\test\B
set count=0
>"%Temp%\ListA.txt" dir /b "%SrcFolder%"
>"%Temp%\ListB.txt" dir /b "%DstFolder%"
set /p FirstA=<"%Temp%\ListA.txt"
set /p FirstB=<"%Temp%\ListB.txt"
ren "%DstFolder%\%FirstB%" "%FirstA%"
for /f "usebackq skip=1 delims=" %%a in ("%Temp%\ListA.txt") do (
set /a count+=1
call :SyncName %%a !count!
)
endlocal
goto :eof
:SyncName
for /f "usebackq skip=%2 delims=" %%a in ("%Temp%\ListB.txt") do (
ren "%DstFolder%\%%a" "%1"
goto :eof
)[/code]