Труба из буфера обмена в подсистеме Linux для Windows

Использование подсистемы Linux для Windows (LSW), clip.exe может быть использован для копирования данных в буфер обмена Windows:

$ clip.exe /?

CLIP

Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.

Parameter List:
    /?                  Displays this help message.

Examples:
    DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.

    CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

Есть ли какой-нибудь способ передать из буфера обмена? Примеры использования по назначению:

$ paste.exe > foo.txt

$ paste.exe | tr , '\n' | clip.exe

2 ответа

Решение

Это печатает буфер обмена Windows на стандартный вывод:

powershell.exe Get-Clipboard

Примеры

$ echo "hello" | clip.exe
$ powershell.exe Get-Clipboard
hello

$ date +%Y-%m-%d | clip.exe
$ powershell.exe Get-Clipboard
2019-06-13

$ alias paste.exe='powershell.exe Get-Clipboard'
$ echo "world" | clip.exe
$ paste.exe
world

источник: https://github.com/Microsoft/WSL/issues/1069


кличка

Вот полезный псевдоним @Gordan Bean, который удаляет \r\n:

alias paste.exe="powershell.exe Get-Clipboard | perl -p -e 's/\r\n$//'"

Еще один вариант ответов, размещенных здесь:

pwsh.exe -noprofile -команда Get-Clipboard | sed s/.$//g

Другие вопросы по тегам