假设所有文件名的字符数均不超过50个(用代码第6行的数字50表示,可根据情况自行修改),这样应当也行:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /s /b /a-d') do (
- if not "%%i"==%0 (
- set str=%%~ni
- for /l %%a in (50,-1,1) do if "!str:~%%a!"=="" set n=-%%a
- for /l %%b in (!n!,1,-1) do set str=!str:~,%%b!@!str:~%%b!
- ren "%%i" "!str!%%~xi"
- )
- )
- pause
复制代码 未经测试,纯属自己练习。代码保存为ANSI编码。 |