You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何编写批处理批量修改目录文件名:替换指定位置空格为指定串?

没问题,我来帮你搞定这两个批量重命名的需求,用Windows批处理就能轻松实现,下面分情况给你详细说明:

一、批量替换文件名的首个空格为指定字符串

假设你想把文件名里的首个空格替换成自定义字符串(比如_CUSTOM-),可以用这个批处理脚本:

@echo off
setlocal enabledelayedexpansion
set "replace_str=_CUSTOM-"  :: 这里替换成你需要的目标字符串

:: 遍历当前目录下的所有文件
for %%f in (*.*) do (
    set "full_name=%%~f"
    set "file_name=%%~nf"
    set "ext=%%~xf"

    :: 检查文件名是否包含空格
    echo !file_name! | findstr /r " " >nul
    if not errorlevel 1 (
        :: 拆分首个空格前的内容和后续内容
        for /f "tokens=1* delims= " %%a in ("!file_name!") do (
            set "new_name=%%a!replace_str!%%b"
        )
        :: 执行重命名(测试时可改为echo ren预览命令)
        ren "!full_name!" "!new_name!!ext!"
    )
)
echo 批量替换完成!
pause

关键说明:

  • setlocal enabledelayedexpansion:开启延迟变量扩展,确保循环内的变量修改能实时生效
  • replace_str:替换首个空格的目标字符串,你可以根据需求自由修改
  • for /f "tokens=1* delims= ":以空格为分隔符,把文件名拆成两部分——%%a是首个空格前的内容,%%b是空格后的所有内容
  • 注意:测试时建议先把ren改成echo ren,预览生成的重命名命令是否正确,避免误改文件

二、替换前8个字符后的首个空格为_TEMP-

针对你给出的示例(12345678 Hello World.txt12345678_TEMP-Hello World.txt),这个脚本会精准定位前8个字符后的首个空格并替换:

@echo off
setlocal enabledelayedexpansion
set "insert_str=_TEMP-"

:: 遍历当前目录下的所有文件
for %%f in (*.*) do (
    set "full_name=%%~f"
    set "file_name=%%~nf"
    set "ext=%%~xf"

    :: 检查文件名长度是否≥9,且后续部分包含空格
    if "!file_name:~8!" neq "" (
        echo !file_name:~8! | findstr /r " " >nul
        if not errorlevel 1 (
            :: 提取前8个字符作为前缀
            set "prefix=!file_name:~0,8!"
            :: 提取第9个字符开始的后缀部分
            set "suffix=!file_name:~8!"
            :: 替换后缀里的首个空格为目标字符串
            for /f "tokens=1* delims= " %%a in ("!suffix!") do (
                set "new_suffix=%%a!insert_str!%%b"
            )
            :: 拼接新文件名并执行重命名
            set "new_name=!prefix!!new_suffix!"
            ren "!full_name!" "!new_name!!ext!"
        )
    )
)
echo 批量处理完成!
pause

关键说明:

  • !file_name:~0,8!:截取文件名的前8个字符
  • !file_name:~8!:截取从第9个字符开始的所有内容
  • 脚本会先判断文件名长度是否足够(≥9),且后缀部分包含空格,避免处理不符合结构的文件
  • 同样,测试时可以用echo ren预览命令,确认无误后再改为ren

使用提示:

  1. 把上述脚本保存为.bat文件(比如rename_files.bat
  2. 将该文件放到你要处理的文件所在目录
  3. 双击运行即可自动批量处理

内容的提问来源于stack exchange,提问作者Wiz321

火山引擎 最新活动