浅谈Node.js操作剪贴板的两种方式

 更新时间:2025年09月11日 10:51:53   作者:卿·静  
本文主要介绍Node.js中通过第三方工具库clipboardy和child_process.文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 Node.js 中,我们可以通过多种方式实现对系统剪贴板的读写操作。本文将以一段示例代码为基础,分别介绍两种常见的剪贴板操作方式:

1.clipboardy

下载第三方工具库clipboardy ,调用该库封装的方法可直接向剪切板读写内容。

npm install clipboardy 

clipboardy不支持使用require导入,需在package.json文件中添加选项 "type": "module" ,在代码中使用import导入工具库

import clipboard from "clipboardy";

clipboard.writeSync("hello world"); // 向剪贴板写入内容

方法说明: clipboard.writeSync(text: string): void 

参数:text:要写入系统剪贴板的文本内容,类型为 string

功能:同步将字符串写入剪贴板。若执行成功,按下ctrl+v可粘贴该内容,如果文本内容为空字符串,按下ctrl+v无反应,类似于清空剪切板

let str = clipboard.readSync();  // 从剪贴板读取内容

console.log(str);

方法说明:clipboard.readSync(): string

返回值:返回当前剪贴板中存储的文本内容,类型为 string

功能:同步读取系统剪贴板中的文本数据

clipboardy工具库的特点为简洁、跨平台,适合快速开发,但无法复制文件。

2.child_process.exec

在某些场景中,我们可能希望通过系统命令实现更复杂的剪贴板操作,比如操作文件、清空剪贴板等。这时可以使用 Node.js 内置的 child_process 模块中的 exec() 函数。

(1)读取剪切板

import { exec } from "child_process";

const get_command = `powershell Get-Clipboard`;

exec(get_command, (error, stdout, stderr) => {
  if (error) {
    console.error("读取剪贴板内容失败:", error);
    return;
  }
  console.log(stdout);
});

命令说明:Get-Clipboard 是 PowerShell 命令,用于获取当前剪贴板的内容

方法说明:   exec(command[, options][, callback]),功能是执行一条 shell 命令并一次性获取输出

参数:

  • command:完整的 shell 命令字符串
  • options:可设置输出内容的编码格式等
  • callback:回调函数,获取 error、stdout(标准输出)、stderr(错误输出),stdout 将包含剪贴板中的文本内容

(2)设置剪切板字符内容

const set_command = `powershell Set-Clipboard 'hello wrold'`;

exec(set_command, (error, stdout, stderr) => {
  if (error) {
    console.error("复制内容到剪贴板失败:", error);
    return;
  }
  console.log(stdout);
});

命令说明:

  • Set-Clipboard 是 PowerShell 命令,用于将指定文本写入剪贴板。
  • 'hello wrold' 是要写入的文本内容,用单引号包裹

(3)设置剪切板文件内容

const file_command = `powershell Set-Clipboard -Path "F:/CSDN/test.json"`;

exec(file_command, (error, stdout, stderr) => {
  if (error) {
    console.error("复制文件到剪贴板失败:", error);
    return;
  }
  console.log(stdout);
});

命令说明:

  • Set-Clipboard -Path <路径> 可以将文件对象复制到剪贴板。
  • 执行该命令后,用户可以在资源管理器中直接粘贴该文件。
  • 注意路径应使用双引号包裹,尤其是路径中包含空格或中文时。

(4)清空剪切板

const clear_command = `cmd /c "echo off | clip"`;

exec(clear_command, (error, stdout, stderr) => {
  if (error) {
    console.error("清空剪贴板失败:", error);
    return;
  }
  console.log(stdout);
});

命令说明:

  • cmd /c:调用 CMD 执行后面的命令并关闭命令行窗口。
  • echo off:输出空字符串。
  • | clip:将前面命令的输出(此处为空)通过管道符 | 传给 clip 命令。
  • clip:Windows 命令行工具,用于将输入内容复制到剪贴板。
  • 整体功能是向剪贴板写入空内容,达到清空效果,按下ctrl+v无反应,此时按下win+v打开剪切板,里面依旧有内容

3.总结对比

操作方式优点适用场景
clipboardy简洁、跨平台、安装即用快速开发、文本操作
exec+命令功能更丰富,可操作文件等深度定制、系统集成

到此这篇关于浅谈Node.js 操作剪贴板的两种方式的文章就介绍到这了,更多相关Node.js 操作剪贴板内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js中process模块常用的属性和方法

    Node.js中process模块常用的属性和方法

    Node.js中的process模块用来与当前进程互动,可以通过全局变量process访问,不必使用require命令加载。它是一个EventEmitter对象的实例。下面这篇文章给大家介绍了Node.js中process模块常用的属性和方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • 利用python分析access日志的方法

    利用python分析access日志的方法

    最近在自学python,光看是不行的,还是要多实操的。这就是一个写给自己的小小工具。主要功能是,便利日志文件夹下的文件,根据设定的关键字查找是否有web攻击行为。有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Node.js实现数据推送

    Node.js实现数据推送

    这篇文章主要为大家详细介绍了Node.js实现数据推送的相关资料,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例

    nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例

    本篇文章主要介绍了nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例,有兴趣的可以了解一下。
    2016-12-12
  • node.js命令行教程图文详解

    node.js命令行教程图文详解

    本文先介绍原生的node.js实现命令行交互,了解原生的api,然后通过commander.js和inquirer.js实现一个完整的交互命令行工具。感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • 前端之npm运行时配置文件.npmrc的方法(可用于配置npm淘宝源)

    前端之npm运行时配置文件.npmrc的方法(可用于配置npm淘宝源)

    这篇文章主要给大家介绍了关于前端之npm运行时配置文件.npmrc(可用于配置npm淘宝源)的相关资料,.npmrc 文件是用于配置 npm(Node.js 包管理器)行为的配置文件,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • NodeJS http模块用法示例【创建web服务器/客户端】

    NodeJS http模块用法示例【创建web服务器/客户端】

    这篇文章主要介绍了NodeJS http模块用法,结合实例形式分析了node.js创建web服务器与客户端,进行HTTP通信的相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • 利用node.js启动本地服务器的操作指南(超详细)

    利用node.js启动本地服务器的操作指南(超详细)

    这篇文章主要介绍了利用node.js启动本地服务器的操作指南(超详细),有很多小伙伴制作网站或者小程序时,需要通过服务器来把前端和后端连接起来,那么我们今天学习启动node.js服务器,文中有详细的代码示例和图文供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2024-05-05
  • node.js中的http.createClient方法使用说明

    node.js中的http.createClient方法使用说明

    这篇文章主要介绍了node.js中的http.createClient方法使用说明,本文介绍了http.createClient的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node vue项目开发之前后端分离实战记录

    node vue项目开发之前后端分离实战记录

    其实基于vue.js+node.js构建的开源博客系统有很多,下面这篇文章主要给大家介绍了关于node vue项目开发之前后端分离的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。
    2017-12-12

最新评论