使用.bat文件实现批量重命名文件:选取某个分隔符,只保留第一个部分和后缀名

529 阅读1分钟

使用.bat文件实现批量重命名文件:选取某个分隔符,只保留第一个部分和后缀名

使用Buzz生成视频字幕后的文件:

屏幕截图 2023-07-11 203334.png

可见文件名被添加了不必要的信息。在其目录下新建记事本,输入以下代码:

@echo off
setlocal enabledelayedexpansion

rem 循环处理当前目录下的文件和文件夹
for /f "delims=" %%a in ('dir /b /a-d') do (
    rem 获取文件名或文件夹名
    set "name=%%~na"
    
    rem 获取后缀名
    set "extension=%%~xa"
    
    rem 检查是否包含分隔符
    echo !name! | findstr /r /c:" " > nul
    
    if not errorlevel 1 (
        rem 使用分隔符拆分字符串,只保留第一个部分
        for /f "tokens=1 delims= " %%b in ("!name!") do (
            set "new_name=%%b!extension!"
            
            rem 重命名文件
            ren "%%a" "!new_name!"
        )
    )
)

endlocal

然后将后缀名txt改为bat,双击它,即可一键重命名

一键重命名后.png

通用模板:(注意:一定要将 分隔符 替换!!!)

@echo off
setlocal enabledelayedexpansion

rem 循环处理当前目录下的文件和文件夹
for /f "delims=" %%a in ('dir /b /a-d') do (
    rem 获取文件名或文件夹名
    set "name=%%~na"
    
    rem 获取后缀名
    set "extension=%%~xa"
    
    rem 检查是否包含分隔符(将 分隔符 替换)
    echo !name! | findstr /r /c:"分隔符" > nul
    
    if not errorlevel 1 (
        rem 使用分隔符拆分字符串,只保留第一个部分(将 分隔符 替换)
        for /f "tokens=1 delims=分隔符" %%b in ("!name!") do (
            set "new_name=%%b!extension!"
            
            rem 重命名文件
            ren "%%a" "!new_name!"
        )
    )
)

endlocal