You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改BAT代码处理所有子文件夹的.md文件并添加指定头部内容?

批量给Obsidian MD文件添加YAML头部标签(递归处理子文件夹)

需求说明

需要修改原有Windows批处理脚本,实现两个目标:

  1. 将指定的YAML头部内容插入到所有子文件夹下的.md文件开头
  2. 替换原有的#unpolished标签为标准Obsidian YAML头部:
---
tags: unpolished
aliases:
cssclass:
---

解决方案(Windows批处理)

直接在文件开头插入内容需要借助临时文件实现,以下是完整脚本:

@echo off
setlocal enabledelayedexpansion

:: 定义要插入的YAML头部,^用于转义换行符
set "yaml=---^
tags: unpolished^
aliases:^
cssclass:^
---^
"

:: 递归遍历当前目录及所有子文件夹的.md文件
for /r %%f in (*.md) do (
    :: 检查文件开头是否已有YAML分隔符---,避免重复插入
    findstr /b /c:"---" "%%f" >nul
    if errorlevel 1 (
        :: 创建临时文件,先写入YAML头部
        echo !yaml! > "%%f.tmp"
        :: 追加原文件内容到临时文件
        type "%%f" >> "%%f.tmp"
        :: 替换原文件(/y自动确认覆盖)
        move /y "%%f.tmp" "%%f" >nul
        echo 已处理: %%f
    ) else (
        echo 已存在YAML头部,跳过: %%f
    )
)

endlocal
pause

关键说明

  • for /r:递归遍历当前目录下所有子文件夹的.md文件
  • enabledelayedexpansion:启用延迟变量扩展,确保多行YAML内容能正确赋值
  • findstr /b /c:"---":检查文件开头是否已有YAML头部,避免重复插入
  • 临时文件机制:Windows批处理无法直接修改文件开头,通过先写YAML再追加原内容的方式实现头部插入

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:25:07