

Nodejs实现复制内容到剪贴板
source link: https://segmentfault.com/a/1190000040173190
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

需求如下:
将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);
});
};
Recommend
-
99
JavaScript复制内容到剪贴板
-
33
-
30
每日前端夜话 第332篇 翻译: 疯狂的技术宅 作者:Sanwar ranwa 来源:dzone 正文共:1376 字 预...
-
16
最近的项目上需要做复制粘贴相关的操作,来总结下吧 复制、剪切、粘贴事件: copy 发生复制操作时触发;cut 发生剪切操作时触发;paste 发生粘贴操作时触发;每个事件都有一个 before 事件对应:befo...
-
8
阿航 2020年5月30日
-
12
剪贴板的内容粘贴为文件-PasteEx – 开源派 PasteEx是国人开源的 Windows 下粘贴时自动生成文件的开源小工具。基于C#编写,遵守GPL开源协议。环境要求
-
3
headers字符串转字典 并储存在headers.json 复制到剪贴板-Python程序-效果演示发布于 今天 03:53 代码效果...
-
10
通过 ssh 登录到远程机器后,想要复制远程机器的文件内容是一件很麻烦的事情。 通过拖动来复制对于多行的内容很难实现精确定位,还有可能会遇到换行符的问题。利用 clipper 命令可以很方便地复制远程机器的内...
-
7
js复制文本到剪切板有很多方法,很多朋友会用开源库,其实纯js的方式实现也很简单。关于复制和剪切板,之前也写过很多文章,例如。 javascript execCommand,复文本框神器
-
9
在 Mac 上,如果经常需要在不同文档之间复制和粘贴内容。但是,macOS 自带的剪贴板只能保存最后一个...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK