import fs from 'fs'; import path from 'path'; function mergeMdFiles(inputFolder) { try { // 验证输入文件夹是否存在 if (!fs.existsSync(inputFolder)) { console.error('错误:输入的文件夹不存在'); process.exit(1); } // 获取输入文件夹的名称作为输出文件名 const folderName = path.basename(inputFolder); const outputFile = path.join(inputFolder, `${folderName}.md`); // 获取文件夹下所有一级MD文件 const files = fs.readdirSync(inputFolder) .filter(file => file.endsWith('.md') && fs.statSync(path.join(inputFolder, file)).isFile()); if (files.length === 0) { console.log('提示:文件夹下没有找到MD文件'); return; } console.log(`找到 ${files.length} 个MD文件,准备合并到 ${outputFile}`); // 合并文件 const outputStream = fs.createWriteStream(outputFile); files.forEach((file, index) => { const filePath = path.join(inputFolder, file); const content = fs.readFileSync(filePath, 'utf8'); // 写入文件名作为标题 outputStream.write(content); // 如果不是最后一个文件,添加分隔符 if (index < files.length - 1) { outputStream.write('\n\n---\n\n'); } }); outputStream.end(); console.log(`合并完成!输出文件:${outputFile}`); } catch (error) { console.error('处理过程中发生错误:', error.message); process.exit(1); } } // 获取命令行参数 const args = process.argv.slice(2); if (args.length === 0) { console.error('用法:node mergeMd.js <输入文件夹路径>'); process.exit(1); } const inputFolder = args[0]; mergeMdFiles(inputFolder);