本帖最后由 aloha20200628 于 2024-6-28 10:17 编辑
回复 1# Y_am
以下代码存为test.bat运行,假设每个子目录中不存在多个异名的相同文件,否则更名会导致冲突...
调用powershell创建各子目录按文件大小排序的路径文件名列表(以便仅对文件大小相同区段进行比对),调用系统内置工具fc.exe完成文件比对...
- @echo off &setlocal enabledelayedexpansion
- pushd "%~1" &set "lastZ=0"
- (powershell "dir -file -filter *.jpg -r|select -pr length, fullname|sort -pr length|ft -auto")|more +3>0.tmp
- for /f "tokens=1* delims= " %%a in (0.tmp) do (
- set "ok=0" &if "%%a"=="!lastZ!" (
- fc /b "%%~fb" "!lastF!">nul 2>nul && (set "ok=1" &ren "%%~fb" "!lastnF!")
- )
- if !ok! equ 0 (set "lastF=%%~fb"&set "lastZ=%%a"&set "lastnF=%%~nxb")
- )
- del/q "0.tmp"&popd&endlocal&pause&exit/b
复制代码
|