因项目需要,本人需将一个文件夹下数千篇txt文本统一格式重命名,一个一个手动修改无疑是费时费力的,所以我想到了批处理,经过刚刚小小的研究与网上丰富的教学资源帮助下,我编写了自己的第一个批处理文件,现将代码贴出与大家分享~
使用方法:首先,新建一个后缀名为.bat的批处理文件,文件名自定义。然后,把下面的代码粘贴到该文件中。最后将该批处理文件放到需要重命名的文件夹下,双击运行即可(vista下需要以管理员权限运行,win7我试过但没成功,可能需要其他方法)。
相关功能说明:重命名后的文件能有统一的前缀,且可以直接在运行该批处理时设置所需的前缀,前缀后面则是从0001开始的编号,目前程序默认的是4位。另外,每次重命名的是某一类文件,如txt、jpg等,由用户自选。
代码:
@echo off&setlocal EnableDelayedExpansion
title 企鹅Sheldon批处理系列之1——文件批量重命名
mode con cols=58 lines=18 & color 3f
echo 功能说明:将当前文件夹下所有相应类型的文件按统一格式重命名(如C1-Sheldon0001.txt、C1-Sheldon0002.txt...)
echo.&echo.&echo.
set /p start= 确定要重命名文件吗?(y/n):
if "!start!"=="y" goto main
exit
:main
set /p bak= 请输入需重命名的文件的扩展名(例:txt):
set /p name= 请输入重命名后的统一前缀(如:C1-Sheldon),后面将统一从0001开始依次编号:
set a=1
for /f "delims=" %%i in ('dir /b /s *.!bak!') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "!name!000!a!.!bak!") else if !a! LSS 100 (ren "%%i" "!name!00!a!.!bak!") else if !a! LSS 1000 (ren "%%i" "!name!0!a!.!bak!") else ren "%%i" "!name!!a!.!bak!"
set/a a+=1
)
)
set /a a=a-1
echo.&echo.&echo.
echo 共重命名 !a!个文件! 请按任意键退出~
pause>nul
第一次写批处理文件,希望对大家有帮助,更期待大家的指点与建议!