使用Bash for Windows复制到剪贴板

使用Bash for Windows复制到剪贴板,windows,command-line,windows-subsystem-for-linux,Windows,Command Line,Windows Subsystem For Linux,如何将结果从命令行直接复制到剪贴板 在Windows的cmd.exe上,我可以简单地执行echo“asd”| clip,并将输出传输到剪贴板 我尝试为此安装xclip,虽然它已编译,但调用时会打印: Error: Can't open display: (null) 使用鼠标不是解决方案。这似乎仍然不受支持:() 一个聪明的解决方法是在Build 14393或更高版本中使用开源工具,如果您想在WSL控制台中将某些内容复制到剪贴板,只需将“.exe”添加到Windows cmd中即可 echo

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

在Windows的cmd.exe上,我可以简单地执行
echo“asd”| clip
,并将输出传输到剪贴板

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

Error: Can't open display: (null)

使用鼠标不是解决方案。

这似乎仍然不受支持:()


一个聪明的解决方法是在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表,因此您可以将其粘贴回

如果您希望使用更“方便”的BOM表,您可以将@reker中的命令添加到~/.bashrc文件中(如果您使用zsh,则必须将其放在~/.zshrc文件中)

我在文件中添加了以下两行:

alias paste="powershell.exe -command \"Get-Clipboard\""
function clip { "$1" | clip.exe;}
我使用clip作为一个函数,因此我可以像使用linux命令一样使用命令('command''使用this for command')。如果您喜欢别名方式,可以添加如下内容

alias clip=clip.exe
这样你就不必一直写.exe了

别忘了运行命令

source ~/.zshrc

保存文件之后。否则,更改仅在重新启动控制台后应用。

是否使用鼠标作为选项?如果是这样的话,就突出显示文本。当然不是,我在谷歌上看到了很多这样的建议:)酷,升级到WSL/Ubuntu 16后就可以开箱即用了
echo
对我不起作用,但是
cat
起作用。也就是说,在命令提示符下输入
cat filePath | clip.exe
。这在shell和剪贴板之间都有效,但是否有相反的解决方案?正在查找
pbpaste
xclip-o
等效项。@JetBlue听起来好像您使用echo时出错了,然后--echo只是将您提供的文本打印到输出中
cat
读取文件。当我尝试使用io重定向和从剪贴板读取选项时,会发生一些奇怪的情况。我可以很好地运行它,它会很好地将剪贴板内容转储到命令行中,但是当我尝试执行例如
powershell.exe-command“Get clipboard”>test.txt
,我的WSL窗口似乎会丢失除颜色方案之外的所有个性化设置(字体大小、字体)。这是典型的吗?我无法在我的计算机上运行PowerShell脚本,因此我创建了一个bash脚本。我尝试在bash脚本中运行PowerShell,但未能获得我想要的结果,并且此解决方案是唯一有效的解决方案。感谢分享!我在WSL
~/.bashrc
文件中为此创建了一个别名:
alias clip='iconv-f utf-8-t utf-16le | clip.exe'
现在我可以像
echo'αβψΔεφγ'| clip
一样对其进行管道输出,这正是我在Cygwin上工作所需要的。我一直在严格地寻找复制命令的输出,因为我经常这样做。我从未使用过使用粘贴命令(我总是使用shift+insert)。但这是一个很好的建议,谢谢!有一些错误。因此,当路径中有空格时(使用pwd),无法复制和粘贴路径。他们逃不了。