通过 WSL 使用剪贴板?

通过 WSL 使用剪贴板?

我正在尝试让 WSL 使用我的剪贴板,以便我可以通过 更新输出中的文件xsel -b > my-umatrix-rules.txt。但是,我收到以下错误:

xsel: Can't open display: (null) : Inappropriate ioctl for device

我认为这与它与 Windows 分开包含以及剪贴板本身有关。有没有办法让 WSL 能够查看剪贴板?

答案1

从 Windows 剪贴板到 WSL

获取信息将 Windows 剪贴板放入 WSL,使用 PowerShell 和 Get-Clipboard cmdlet,如下所示:

powershell.exe -c Get-Clipboard > my-umatrix-rules.txt
从 WSL 到 Windows 剪贴板

发送数据从 WSL 中删除 Windows 剪贴板,我知道的最简单的方法是使用clip.exe,如下所示:

cat my-umatrix-rules.txt | clip.exe

请注意,虽然不适用于此特定用例,但如果您需要捕获两个输出WSL 中的应用程序错误地复制到 Windows 剪贴板(常见场景),只需使用普通的 Linux 重定向,例如:

# <command> 2>&1 | clip.exe
ls kdkdkdkd * 2>&1 | clip.exe

答案2

| clip.exe很好。但是,当你的字符串包含特殊字符(例如中文)时,它们的输出就很奇怪。

这是我的别名。

alias clip='powershell.exe -c "chcp 65001 >\$null; clip.exe"'
alias past='powershell.exe -c Get-Clipboard'

clip别名中,它使用 PowerShell 并首先将其输出编码更改为 UTF-8(代码页 65001),然后使用clip.exe

然后你可以使用

$ echo '测试' | clip
$ past
测试

去测试。

相关内容