作者:上犹日期:
返回目录:文件问题
首先,操作系统本身也是可以批量重命名的:选择需要命名的文件→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-