风过欲相随 2017-10-23 02:15 采纳率: 0%
浏览 2112
已结题

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

原来 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条回答

  • 风过欲相随 2017-10-23 03:29
    关注

    行吧我知道了
    最后还得靠自己这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
    )
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?