首先,操作系统本身也是可以批量重命名的:选择需要命名的文件→F2(重命名)→输入开头的字符,如n→回车,得到的批量重命名的效果如下:
如果要求只用两位数字来重命名,可以写一个批处理文件:
setlocal enabledelayedexpansion set n=0 set "lj=%~p0" set "lj=%lj:\= %" for %%a in (%lj%) do set wjj=%%a echo 文件夹是:%wjj% for /f "tokens=1,2 usebackq delims=." %%A in (`dir /o:n /b`) do ( if not "%%~nA"=="%~n0" ( rem 不更改bat文件的名称; if not "%%B"=="html" ( rem 不更改html文件的名称; if not "%%B"=="bat" ( rem 不更改html文件的名称; if not "%%A.%%B"=="%%A" ( rem 不更改文件夹的名称; set /a n=n+1 if !n! lss 10 ( ren "%%A.%%B" "%wjj%0!n!.%%B" ) else ( ren "%%A.%%B" "%wjj%!n!.%%B" ) ) ) ) ) ) ::set /p name="" "="前后不能有空格; ::) else ( "else"前后必须有空格; :: if !n! lss 10 ( 此处符号必须是"!",而不是"%";
效果如下:
如果想在数字的前面加上文件夹的名字,可以稍微改一下批处理文件:
setlocal enabledelayedexpansion set n=0 set "lj=%~p0" set "lj=%lj:\= %" for %%a in (%lj%) do set wjj=%%a echo 文件夹是:%wjj% for /f "tokens=1,2 usebackq delims=." %%A in (`dir /o:n /b`) do ( if not "%%~nA"=="%~n0" ( rem 不更改bat文件的名称; if not "%%B"=="html" ( rem 不更改html文件的名称; if not "%%B"=="bat" ( rem 不更改html文件的名称; if not "%%A.%%B"=="%%A" ( rem 不更改文件夹的名称; set /a n=n+1 if !n! lss 10 ( ren "%%A.%%B" "%wjj%0!n!.%%B" ) else ( ren "%%A.%%B" "%wjj%!n!.%%B" ) ) ) ) ) )
效果如下:
-End-