共计 1379 个字符,预计需要花费 4 分钟才能阅读完成。
需要如下:
将index.txt
的内容进行格局转换后复制到剪贴板。
index.txt
莲子心中苦, 梨儿腹内酸。-- 明末清初. 金圣叹
雨入花心,自成甘苦。水归器内,各现方圆。-- 明末清初. 金圣叹
真读书人天下少, 不如意事古今多。-- 明末清初. 金圣叹
转换后
{"content": "莲子心中苦, 梨儿腹内酸。-- 明末清初. 金圣叹"},
{"content": "雨入花心,自成甘苦。水归器内,各现方圆。-- 明末清初. 金圣叹"},
{"content": "真读书人天下少, 不如意事古今多。-- 明末清初. 金圣叹"},
流程如下
读取 index.txt
中的内容
生成一个 copy.bat
文件,写入 clip < result.txt
将转换后的内容保留到result.txt
,写入文件是思考到特殊字符会导致命令执行失败
因为 clip 命令只反对 GBK 编码,然而 nodejs 在写入文件时不反对 GBK 编码,则须要 iconv-lite 进行转码,否则中文会呈现乱码。
执行 copy.bat
,实现内容复制到剪贴板,删除copy.bat
和result.txt
实现如下
视频地址 – nodejs 实现复制内容到剪贴板
npm 包 – sf-copy-to-clipboard
const file_os = require("fs");
const contentStr = file_os.readFileSync("index.txt", "utf-8");
const exec = require('child_process').exec;
const iconv = require('iconv-lite');
let sentenceList = contentStr.split("\r\n").filter((sentence) => sentence != "").map((sentence) => ({content: sentence}));
let resultStr = JSON.stringify(sentenceList);
resultStr = resultStr.substring(1, resultStr.length - 1);
resultStr = iconv.encode(resultStr, 'gbk');
copyToClipboard(resultStr, () => {console.log('曾经复制到剪切板');
})
function copyToClipboard(text, func) {
let resultfileName = "result.txt";
let command = `clip < ${resultfileName} `;
file_os.writeFileSync(resultfileName, resultStr);
var cmdFileName = 'copy.bat';
file_os.writeFileSync(cmdFileName, command);
exec(cmdFileName, function (err, stdout, stderr) {if (err || stderr) return console.log(err, stdout, stderr);
// 用 nodejs 删除文件
file_os.unlinkSync(cmdFileName);
file_os.unlinkSync(resultfileName);
func(text, stdout);
});
};
正文完