MD Factory 为每个文档保存一个 Markdown 文件。要得到单个文件,请先转换文档,再用一条简短的 PowerShell 命令合并这些 Markdown 文件,它会在每个文件前加一行来源。
结果是一个文件,其中每个文档都以其来源的名称开头。图片仍然有效,因为合并后的文件就放在图片文件夹旁边。
何时一个文件更方便
当某个工具只接受单个上传文件或限制附件数量、想把多个文档当作一个文本阅读,或想把一整套文档粘贴到一条提示中时,一个文件会很方便。
如果编码智能体要搜索文件夹,请每个文档保留一个文件。它可以只打开需要的文件,文件名也能说明来源,参见 如何让 Claude Code、Cursor 和 Codex 读取你的 PDF 和 Word 文件。只合并彼此相关的文档,因为过长的文件可能超出 AI 工具一次能读取的量。
转换文档
- 将彼此相关的文档放到同一个文件夹中。
- 打开 MD Factory,点击添加文件夹并选择它。转换会立即开始,每个 Markdown 文件都保存在对应的原文件旁边。
- 等到每一行都显示已完成、需要检查或失败。点击需要检查可查看要核对的内容,并在合并文件前处理好那些部分。
下面的命令会合并文件夹中的每个 .md 文件,所以只转换你想放进合并文件的内容。如果不想让 Budget (2).md 这样的带编号副本出现在其中,请先删除它们。
用 PowerShell 合并文件
- 在文件资源管理器中,打开存放 Markdown 文件的文件夹。
- 点击地址栏,输入 powershell 并按 Enter。
- 粘贴下面的命令并按 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 中都能运行。