【问题标题】:Copy to clipboard using Bash for Windows使用 Bash for Windows 复制到剪贴板
【发布时间】:2017-08-25 22:07:29
【问题描述】:

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

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

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

Error: Can't open display: (null)

使用鼠标不是解决办法。

【问题讨论】:

  • 是否可以选择使用鼠标?如果是这样,只需突出显示文本。
  • 肯定不是,我google了一下,看到很多这样的建议:)
  • 对于熟悉结合复制和粘贴的xclip 的用户,您可能对paste command 感兴趣。

标签: windows command-line windows-subsystem-for-linux


【解决方案1】:

【讨论】:

    【解决方案2】:

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

    echo "aaa"|clip.exe
    

    从剪贴板读取:

    powershell.exe -command "Get-Clipboard"
    

    【讨论】:

    • 酷,升级到 WSL/Ubuntu 16 后开箱即用!
    • echo 对我不起作用,但 cat 对我有用。即在命令提示符下输入cat filePath | clip.exe
    • 这适用于从外壳到剪贴板,但是否有相反的解决方案?正在寻找 pbpastexclip -o 等价物。
    • @JetBlue 听起来您使用 echo 错误,然后 -- echo 只是将您提供给输出的文本打印出来。 cat 读取文件。
    • 当我尝试将 io 重定向与从剪贴板读取选项一起使用时,会发生一些奇怪的事情。我可以很好地运行它,它会将剪贴板内容转储到命令行中,但是当我尝试做例如powershell.exe -command "Get-Clipboard" > test.txt,我的 WSL 窗口似乎丢失了除配色方案之外的所有个性化设置(字体大小、字体)。这是典型的吗?
    【解决方案3】:

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

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

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

    【讨论】:

    • 我无法在我的计算机上运行 PowerShell 脚本,因此我创建了一个 bash 脚本。我尝试从 bash 脚本中运行 PowerShell,但未能获得我想要的结果,而这个解决方案是唯一有效的解决方案。
    • 感谢分享!我在我的 WSL ~/.bashrc 文件中为此创建了一个别名:alias clip='iconv -f utf-8 -t utf-16le | clip.exe' 现在我可以像 echo 'αβψδεφγ' | clip 一样将输出通过管道传递给它
    • 完美,正是我在 Cygwin 上运行所需要的。
    【解决方案4】:

    如果你想要一些更“容易”使用的东西,你可以将来自@reker 的命令添加到你的 ~/.bashrc 文件中(如果你使用 zsh,你必须把它放在 ~/.zshrc 文件中)。

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

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

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

    alias clip=clip.exe
    

    您不必一直编写 .exe。

    别忘了运行命令

    source ~/.zshrc
    

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

    【讨论】:

    • 我一直在严格地寻找复制命令的输出,因为我经常这样做。我从来没有使用命令粘贴(我总是只做 shift+insert)。但这是一个很好的建议,谢谢!
    • 存在一些错误。因此当路径中有空格时(使用 pwd),您无法复制和粘贴路径。它不会逃脱他们。
    猜你喜欢
    • 1970-01-01
    • 2013-05-04
    • 2010-11-22
    • 2014-09-14
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多