[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理求助 历遍文件夹下的图片文件,用上几级文件夹的名称来重命名

大佬们,是这样的:
总文件夹下面有很多子目录,子文件
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件夹五层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件夹五层+文件夹六层+文件夹七层+文件夹八层+文件1,2,3,4,5....
......
我想将bat文件放在总文件夹下,双击就可以。
文件夹的层数是不定的,历遍就行。
我想要的命名方式是:文件夹一层+我输入的文字+文件的上一层目录的名称+3位数序列号.图片格式本身
具体就是:
文件夹一层+我输入的文字+文件夹三层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹二层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹一层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹四层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹五层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹三层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹八层+文件001,002,003,004,005....图片格式本身

就是中间不管有几层文件夹,我只要第一层和倒数第一层的文件夹名字。中间加入我自己想输入的文字,加上序列号

事情就是这样,跪求大佬们给条明路,拜谢。
选择需要承载!

@echo off
mode con lines=3000
cd /d "%~dp0"
set /p input=输入:
for /f "delims=" %%a in ('dir /ad/b') do (
    set n=100001
    set "first=%%a"
    for /f "delims=" %%b in ('dir /a-d/b ".\%%a\" 2^>nul') do (
        set "file=.\%%a\%%b"
        setlocal enabledelayedexpansion
        echo;"!file!" --^> "!first!-%input%-!first!-!n:~-4!%%~xb"
        ren "!file!" "!first!-%input%-!first!-!n:~-4!%%~xb"
        endlocal
        set /a n+=1
    )
    for /f "delims=" %%b in ('dir /ad/b/s ".\%%a\" 2^>nul') do (
        set m=100001
        set "last=%%~nxb"
        for /f "delims=" %%c in ('dir /a-d/b "%%b\" 2^>nul') do (
            set "file=%%b\%%c"
            setlocal enabledelayedexpansion
            echo;"!file!" --^> "!first!-%input%-!last!-!m:~-4!%%~xc"
            ren "!file!" "!first!-%input%-!last!-!m:~-4!%%~xc"
            endlocal
            set /a m+=1
        )
    )
)
pause
exit
选择需要承载!

TOP

返回列表