| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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);
|