搜档网
当前位置:搜档网 › 批量更改文件名(可以包括后缀名)

批量更改文件名(可以包括后缀名)

?@echo off
cls
title 批量更改文件名(后缀名相同的文件)
color 1a
echo.
echo.
echo ------------------将此批处理放在所要更改的文件名的同一目录下-----------------
echo.
echo.
echo 确定,请按任意键继续...
pause >nul
cls
color 1a
title 批量更改文件名(后缀名相同的文件)
:start
echo.
echo.
echo ------------------统计所要更改的文件数目(后缀名相同的文件)-----------------
@echo off
echo.
echo.
set k=
set /p k= 输入你要更改的文件的后缀名(如tmp.txt 输入txt):
cd %~dp0
if '%k%'=='' echo. & echo. & echo -------------------------输入为空,请重新输入---------------------- & echo. & echo. & echo 按任意键返回,重新输入 & pause >nul & cls & goto start
echo.
if not exist *.%k% echo. & echo. & echo -------------------没有找到你要更名的文件格式,请重新输入---------------- & echo. & echo. & echo 按任意键返回,重新输入 & pause >nul & cls & goto start
echo.
echo.
set num=
set num.=
dir /b /a-d /o:n *.%k% >src.txt
for /f "delims=" %%i in ('dir /a-d /b *.%k% 2^>nul') do (
set /a num%%~xi+=1
)
for /f "tokens=2,3 delims==." %%i in ('set num.') do (
cls & echo. & echo %%i 格式文件共有 %%j 个 & echo. & echo 需输入%%j个更改后的文件名(包括后缀名) & echo. & echo 注意:共需输入%%j个更改后的文件名 >tmp2.txt & echo.
echo ^">dot.txt
for /f "delims=" %%m in (dot.txt) do (for /f "delims=" %%n in (src.txt) do echo %%m%%n%%m>>tmp3.txt)
)
pause
echo.
echo.
echo ----------------------------正在获取文件相关信息---------------------------
ping 127.1 -n 2 >nul
echo.
echo.
echo 已获取文件信息,正在进行相关操作
ping 127.1 -n 2 >nul
echo.
echo 后面将自动打开生成的tmp3.txt文件,查看获取文件名的初始信息
echo.
ping 127.1 -n 2 >nul
echo -----------请将打开后的tmp3.txt文件拖到一旁,以免遮住后续操作-----------------
echo.
ping 127.1 -n 2 >nul
echo 按任意键继续...
pause >nul
echo.
echo -----------------------正在打开,请稍候....------------------------------------
ping 127.1 -n 3 >nul
start tmp3.txt
ping 127.1 -n 4 >nul
if errorlevel==0 goto next
echo.
:next
cls
title 批量更改文件名(后缀名相同的文件)
echo.
echo.
echo ------------------进入下一步打开记事本,-----------------------------
echo.
echo 根据提示,在里面输入你更改后的文件名,注意格式
echo.
echo 请根据文本文档中的内容进行操作
echo.
echo -------------------按任意键打开记事本--------------------------------
pause >nul
echo.
echo 正在打开,请稍候....
echo 1.txt>tmp.txt
echo 2.txt>>tmp.txt
echo 3.txt >>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
echo 对比下刚才打开的tmp3.txt文本文档中的内容>>tmp.t

xt
echo 按照上面格式输入你更改后的文件名(一行输入一个文件名,包括后缀名)>>tmp.txt
echo 如果重命名后的文件有空格请用双引号把它括起来如”a b.txt”>>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
echo 注意更改前与更改后的文件名一一对应>>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
type tmp2.txt >>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
echo 编辑结束后请保存退出(tmp3.txt中请勿动),将自动进入下一步>>tmp.txt
echo ---------------------------------------------------------------->>tmp.txt
echo 首先清除本文本(tmp.txt)中所有内容。>>tmp.txt
ping 127.1 -n 2 >nul
echo.
echo 已打开记事本,请编辑记事本,勿按任意键
start /wait tmp.txt
cls
title 批量更改文件名(后缀名相同的文件)
echo.
echo.
echo 请关闭所有的文本文档(*.txt),需保存的先保存后再关闭,以免影响后面操作
echo.
echo.
echo 确定都已关闭,按任意键继续...
pause >nul
ping 127.1 -n 2 >nul
cls
title 批量更改文件名(后缀名相同的文件)
echo.
echo.
echo ------------------------------正在进行更名,请稍候...------------------------
ping 127.1 -n 4 >nul
for /f "delims=" %%o in (tmp3.txt) do (
for /f "delims=" %%p in (tmp.txt) do (rename %%o %%p)
)
cls
title 批量更改文件名(后缀名相同的文件)
color 1a
echo.
echo.
echo ------------------------------操作成功!按任意键结束--------------------------
pause >nul
@del /f /q /s tmp.txt >nul
@del /f /q /s tmp3.txt >nul
@del /f /q /s tmp2.txt >nul
@del /f /q /s dot.txt >nul
@del /f /q /s src.txt >nul
goto exit
:end
echo.
echo.
echo 抱歉,因技术原因无法返回参数,将自动退出,请重新打开
ping 127.1 -n 6 >nul
:exit
exit

相关主题