求一bat批处理命令,将第三级文件夹里的各种文件重命名为第一级文件夹的名字 50C

原来 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!"
        )
    )
)

1个回答

行吧我知道了
最后还得靠自己这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
)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问