Скопировать в буфер обмена с помощью Bash для Windows
Как скопировать результаты из командной строки непосредственно в буфер обмена?
В Windows cmd.exe я могу сделать просто echo "asd" | clip
и он выводит вывод в буфер обмена.
Я попытался установить xclip
для этого, и хотя он скомпилирован, когда его вызывается, он печатает:
Error: Can't open display: (null)
Использование мыши не является решением.
Ответы
Ответ 1
В сборке 14393 или более поздней версии, если вы хотите скопировать что-либо в буфер обмена в консоли WSL, просто добавьте ".exe" к тому, что вы делаете в Windows cmd.
echo "aaa"|clip.exe
Читать из буфера обмена:
powershell.exe -command "Get-Clipboard"
Ответ 2
Это все еще не поддерживается: (https://www.reddit.com/r/Windows10/comments/4gwnom/can_bash_on_windows_interact_with_the_system/)
Умное обходное решение - это инструмент с открытым исходным кодом plak (https://github.com/sander/plak)
Ответ 3
Чтобы скопировать не-ascii символы (другие языки), я должен был сделать это:
эхо 'αβψδεφγ' | iconv -f utf-8 -t utf-16le | clip.exe
utf-16le исключает предыдущую спецификацию, поэтому вы можете вставить ее обратно