You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js脚本中获取剪贴板数据?

独立JS脚本同步读取剪贴板实现

非浏览器环境的独立JS脚本(Node.js运行时,自动化测试脚本通用)无法调用浏览器navigator.clipboard API,可通过调用操作系统原生剪贴板能力实现你需要的同步getClipboardData方法,零依赖跨平台版本代码如下:

const { execSync } = require('child_process');
const os = require('os');

function getClipboardData() {
  const currentPlatform = os.platform();
  let execCommand;

  switch (currentPlatform) {
    case 'win32':
      // Windows 调用PowerShell读剪贴板,指定UTF8编码避免中文乱码
      execCommand = 'powershell -command "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-Clipboard -Raw"';
      break;
    case 'darwin':
      // macOS 自带pbpaste命令读剪贴板
      execCommand = 'pbpaste';
      break;
    case 'linux':
      // Linux 调用xclip读剪贴板,未预装的话可通过apt/yum/dnf安装
      execCommand = 'xclip -selection clipboard -o';
      break;
    default:
      throw new Error(`当前运行系统${currentPlatform}不支持剪贴板读取`);
  }

  try {
    // 同步执行命令返回文本,自动去除末尾多余换行
    return execSync(execCommand, { 
      encoding: 'utf8',
      stdio: ['ignore', 'pipe', 'ignore'] // 忽略无关错误输出
    }).trimEnd();
  } catch (e) {
    console.error('剪贴板读取失败:', e.message);
    return '';
  }
}

调用方式完全匹配你的需求:

let data = getClipboardData();
console.log(data);

注意事项

  • Linux环境运行如果提示找不到xclip,执行对应包管理器安装即可:Debian/Ubuntu系执行sudo apt install xclip,Fedora/RHEL系执行sudo dnf install xclip,工具体积极小无额外依赖
  • 上述实现默认读取文本格式剪贴板内容,如果需要验证图片、文件等特殊格式复制逻辑,需要对应调整系统命令的解析规则
  • 如果不想自行维护跨平台兼容逻辑,也可以使用轻量封装的npm包clipboardy,安装后仅需几行代码即可实现相同能力:
// 先执行 npm i clipboardy 安装依赖
const clipboardy = require('clipboardy');
function getClipboardData() {
  return clipboardy.readSync();
}

内容的提问来源于stack exchange,提问作者Akshay Bistagond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 14:31:00