MD Factory 为每个文档保存一个 Markdown 文件。要得到单个文件,请先转换文档,再用一条简短的 PowerShell 命令合并这些 Markdown 文件,它会在每个文件前加一行来源。

结果是一个文件,其中每个文档都以其来源的名称开头。图片仍然有效,因为合并后的文件就放在图片文件夹旁边。

四小叠纸放在一大叠纸旁边,大叠纸被淡紫色长尾夹夹住,前面放着一支淡紫色铅笔。
多个文档,一个文件。

何时一个文件更方便

当某个工具只接受单个上传文件或限制附件数量、想把多个文档当作一个文本阅读,或想把一整套文档粘贴到一条提示中时,一个文件会很方便。

如果编码智能体要搜索文件夹,请每个文档保留一个文件。它可以只打开需要的文件,文件名也能说明来源,参见 如何让 Claude Code、Cursor 和 Codex 读取你的 PDF 和 Word 文件。只合并彼此相关的文档,因为过长的文件可能超出 AI 工具一次能读取的量。

转换文档

  1. 将彼此相关的文档放到同一个文件夹中。
  2. 打开 MD Factory,点击添加文件夹并选择它。转换会立即开始,每个 Markdown 文件都保存在对应的原文件旁边。
  3. 等到每一行都显示已完成、需要检查或失败。点击需要检查可查看要核对的内容,并在合并文件前处理好那些部分。

下面的命令会合并文件夹中的每个 .md 文件,所以只转换你想放进合并文件的内容。如果不想让 Budget (2).md 这样的带编号副本出现在其中,请先删除它们。

用 PowerShell 合并文件

  1. 在文件资源管理器中,打开存放 Markdown 文件的文件夹。
  2. 点击地址栏,输入 powershell 并按 Enter。
  3. 粘贴下面的命令并按 Enter:
$files = Get-ChildItem -Filter *.md | Where-Object Name -ne "combined.md" | Sort-Object Name
$parts = foreach ($file in $files) {
    "Source file: " + $file.Name + "`n`n" + (Get-Content -LiteralPath $file.FullName -Raw -Encoding utf8)
}
$text = $parts -join "`n`n---`n`n"
[System.IO.File]::WriteAllText("$PWD\combined.md", $text, (New-Object System.Text.UTF8Encoding $false))

结果是同一文件夹中的 combined.md。文档按字母顺序依次排列。每个文档都以形如 Source file: annual-report.md 的一行开头,并用一条水平线与上一个文档隔开。

请保留命令中的 UTF-8 设置:没有它们,Windows PowerShell 可能会把带重音符号的字母和非拉丁字母显示成乱码。

要指定顺序,请在运行命令前,在 Markdown 文件名开头加上数字,例如 01-contract.md。再次运行命令时,combined.md 会被替换,不会被当作其中的一个文档读取。

只合并部分文件

要合并文件夹的一部分,请修改第一行中的筛选条件。例如,只取名称以 2026- 开头的文件:

$files = Get-ChildItem -Filter "2026-*.md" | Sort-Object Name

命令的其余部分保持原样。如果在一个文件夹中生成多个合并文件,请修改命令中的 combined.md,为每个文件指定各自的名称。

合并后的文件是什么样子

Source file: contract.md

# Supplier contract

...

---

Source file: handbook.md

# Team handbook

每个文档的文字保持不变。只有来源行和分隔线是新增的。

合并文件中的图片

每个文档的图片位于它的 Markdown 文件旁边的文件夹中,combined.md 中的链接指向这些文件夹。请让 combined.md 与图片文件夹保持在同一个文件夹中。如果移动它,请把图片文件夹一起移动。

该命令合并一个文件夹中的文件。对于子文件夹中的文档,请在每个子文件夹中运行它,这样每个合并文件都和自己的图片放在一起。

检查合并后的文件

数一数来源行。下面的命令会输出文件中的文档数量,它应该等于 Markdown 文件的数量:

(Select-String -Path combined.md -Pattern "^Source file: " -Encoding utf8).Count

然后查看文件本身:

  • 打开 combined.md,滚动到两个文档的交界处。分隔线和来源行应该位于它们之间。
  • 每个文档保留各自的标题,所以文件中有多个一级标题。来源行显示每个文档从哪里开始。
  • 如果 AI 工具因文件过长而拒绝它,请将这组文档拆成两个文件夹,分别合并。

打开或上传结果

记事本可以打开 combined.md,Visual Studio Code 也可以,它还能显示格式化的效果:按 Ctrl+Shift+V。其他应用列在 什么是 MD 文件以及如何打开。如果上传表单不接受 .md 文件,请上传重命名为 combined.txt 的副本。

要在文件顶部列出这些文档,请输出来源行并粘贴进去:

Select-String -Path combined.md -Pattern "^Source file: " -Encoding utf8 | ForEach-Object Line

告诉 AI 文件的结构

读取 combined.md 的工具,在了解文件结构时效果更好。在提示开头加一条简短的说明就够了:

阅读 combined.md。每个文档都以一行
“Source file: name”开头,并以一条水平线结束
上一个文档。回答时,请注明你所
使用的源文件。

请将几个回答与所注明的文件对照检查。只有名称正确,它才有用。

文档更改之后

combined.md 是一份副本,不会跟随文档更新。请将更改后的文档重新添加到 MD Factory,然后再次运行命令。

合并后的文件包含每个文档的文字,所以要像对待原文件一样谨慎。如果文件夹同步到云端,这个文件也会同步,参见 如何在不上传文档的情况下转换文档.

常见问题

MD Factory 能自己合并文档吗?

不能。它为每个文档保存一个 Markdown 文件。

这条命令能在 PowerShell 7 中使用吗?

可以,它在 Windows PowerShell 和 PowerShell 7 中都能运行。