原来 000/111/222/333.flv
效果 000/111/222/111.flv
要保留后缀
这是我写的部分代码dir为传入路径相当于上面的000
for /f "delims=" %%i in ('dir /a:d /b %dir%\') do (
rem 文件路径
set path=%%~ni
for /f "delims=" %%j in ('dir /s /b /a:-d %%i\*.flv') do (
set full=%%~dpnxj
set exten=%%~xj
if /i "!isrun!"=="n" (
echo ren "!full!" "!path!!exten!"
) else (
ren "!full!" "!path!!exten!"
echo 更名为:"!path!!exten!"
)
)
)
行吧我知道了
最后还得靠自己这c币白冲了
@echo off
:start
::开始批处理文件中环境改动的本地化操作
::启动变量延迟
setlocal enabledelayedexpansion
title 文件重命名
set isrun=n
echo 请把包含要处理的文件的[文件夹]拖动到此处,回车确定
::set /p让用户自己输入变量的值
set dir=n&set /p dir=
if "%dir:"=%"=="n" cls&goto start
cls&echo ====================================
:run
for /f "delims=" %%i in ('dir /a:d /b %dir%\') do (
rem 文件路径
set path=%%~ni
for /f "delims=" %%j in ('dir /s /b /a:-d %dir%\!path!\*.flv') do (
set full=%%~dpnxj
set exten=%%~xj
rem set path=!path:~0,-1!
if /i "!isrun!"=="n" (
echo ren "!full!" "!path!!exten!"
) else (
ren "!full!" "!path!!exten!"
echo 更名为:"!path!!exten!"
)
)
)
echo ====================================
if /i "%isrun%"=="n" (
echo 即将执行以上操作,是否执行[Y/N]
set isrun=n&set /p isrun=
if /i "!isrun!"=="y" ( goto run ) else ( cls&goto start )
) else (
echo.&echo 更名完成!
echo 任意键返回&pause>nul&cls&goto start
)