回复 7# allen2023
重新写了代码,调整了代码思路,去除文件末尾"(数字)"并改名,如果已经存在则直接覆盖。支持以下各种情况,支持末尾3位数字以内,支持子目录去重
- 苏教版.pdf
- 苏教版(1).pdf
- 苏教版(1)(1).pdf 执行两次即可
- 苏教版(2).pdf
- 苏教版(1).pdf
- 苏教版(语文).pdf
- 苏教版(语文)(1).pdf
复制代码
此为测试版,测试正确,删除 move 前的 echo 再次执行
- @echo off
- rem 保存为ansi编码
- set dirpath=\\sy\Download\
- for /f "delims=" %%d in ('dir /b /s /ad "%dirpath%"') do (
- echo 目录[%%d]
- for /f "delims=" %%i in ('2^>nul dir /b /a-d "%%d\*.pdf" ^| findstr /rie /c:"([0-9][0-9]*)\.pdf" /c:"([0-9][0-9]*)\.pdf"') do (
- set filename=%%~ni
- set filepath=%%d
- echo 文件[%%~nxi]
- setlocal enabledelayedexpansion
- for /l %%l in (1,1,5) do (
- if not defined mo (
- if "!filename:~-%%l,1!" equ "(" (
- echo move "!filepath!\!filename!%%~xi" "!filepath!\!filename:~0,-%%l!%%~xi"
- set mo=1
- ) else if "!filename:~-%%l,1!" equ "(" (
- echo move "!filepath!\!filename!%%~xi" "!filepath!\!filename:~0,-%%l!%%~xi"
- set mo=1
- )
- )
- )
- endlocal
- )
- )
- pause
复制代码
|