使用 Bash for Windows 复制到剪贴板

Copy to clipboard using Bash for Windows

如何将结果从命令行直接复制到剪贴板?

在 Windows 的 cmd.exe 上,我可以简单地 echo "asd" | clip 并将输出通过管道传输到剪贴板。

我尝试为此安装 xclip,虽然它编译了,但在调用时打印:

Error: Can't open display: (null)

使用鼠标不是解决方案。

这似乎仍然不受支持:(https://www.reddit.com/r/Windows10/comments/4gwnom/can_bash_on_windows_interact_with_the_system/)

一个聪明的解决方法是开源工具 plak (https://github.com/sander/plak)

在 Build 14393 或更高版本中,如果您想在 WSL 控制台中将某些内容复制到剪贴板,只需将“.exe”添加到您在 Windows cmd 中执行的操作即可。

echo "aaa"|clip.exe

从剪贴板读取:

powershell.exe -command "Get-Clipboard"

为了复制非 ascii 字符(其他语言),我不得不这样做:

echo 'αβψδεφγ' | iconv -f utf-8 -t utf-16le | clip.exe

utf-16le 排除了前面的 BOM,因此您可以将其粘贴回去

如果你想使用更多的东西 'easy',你可以将来自@reker 的命令添加到你的 ~/.bashrc 文件中(如果你使用 zsh,你必须把它放在 ~ /.zshrc 文件).

我将这两行添加到我的文件中:

alias paste="powershell.exe -command \"Get-Clipboard\""
function clip { "" | clip.exe;}

我把clip当作一个函数使用,所以我可以像('command' 'use this for command')那样使用命令linux。如果您更喜欢别名方式,可以添加类似

的内容
alias clip=clip.exe

您不必一直编写 .exe。

别忘了运行命令

source ~/.zshrc

保存文件后。否则更改只会在您的控制台重新启动后应用。