команда cygwin для копіювання в буфер обміну Windows


82

Я бачу тут:

http://www.pgrs.net/2008/1/11/command-line-clipboard-access

що в Linux та osx є спосіб скопіювати в буфер обміну з командного рядка. Тож я запустив файл cygwin setup.exe, але не зміг знайти пакет xsel. Я здогадуюсь, можливо, цей пакет не був перенесений у Windows? Схоже, є інструмент, як це зробити у вікнах:

http://www.labnol.org/software/tutorials/copy-dos-command-line-output-clipboard-clip-exe/2506/

Думаю, я спробую це - але тим часом я думав, що запитаю, чи знайшов хтось хороше рішення.

Відповіді:


66

На сторінці, на яку ви зробили посилання, є коментарі, що вказують, як це зробити у вікнах:

У Windows Cygwin постачається з getclip та putclip, які виконують ту саму роботу.


16
Якщо у вас їх немає, потрібно встановити cygutils-extraпакет ( src ). Цікаво, що Babun пропускає цей пакет за замовчуванням.
chronola

159

Cygwin постачається із спеціальним файлом пристрою під назвою /dev/clipboard:

echo foobar > /dev/clipboard  # Puts "foobar\n" on the clipboard
cat /dev/clipboard  # Pastes clipboard to stdout

3
це також працює, але, мабуть, я не можу прийняти 2 різні відповіді
andersonbd1

5
Це краще, ніж getclip / putclip, оскільки для цього не потрібно встановлювати пакет.
Stabledog

8
Перевага getclip / putclip over / dev / clipboard полягає в тому, що перші мають опції перетворення між закінченнями рядків unix та dos.
esquifit

8
Перевага / dev / clipboard полягає в тому, що він підтримує UTF8, тоді як getclip / putclip - ні.
Максиміліан Хілс

2
І легко створити putclipвміст cat - >/dev/clipboardта getclipвміст cat /dev/clipboard- як псевдоніми чи функції чи сценарії, залежно від того, що вам сподобається. Звичайно, ви можете використовувати будь-яку пару імен сценаріїв. Наприклад, у Mac є pbcopyі pbpasteрозміщувати та отримувати інформацію з картону (буфера обміну).
Джонатан Леффлер,

28

Я відповідаю на відповідь вище

Передати текст у буфер обміну Windows

putclip < foo.txt

Перенести до файлу будь-який текст, який міститься в буфері обміну Windows

getclip > foo.txt

@Adrian Дякую, що помітили моє марне використання кота. Я, як правило, зловживаю кішкою, а не просто трубами. Я оновив свою відповідь.


12

як щодо просто

clip < file.extension

щойно приміряв мій ключ ssh


1
clip.exeбула введена в Windows Vista, так що так, ви можете використовувати і це, але можливості обмежені.
RobSiklos


2

Не зовсім так само, але тут є реєстратор кліфборду.

#!/usr/bin/ksh
while true
do
    if [[ "$(</dev/clipboard)" = "${LastClip}" ]]
    then
            sleep 2
    else
            LastClip="$(</dev/clipboard)"
            echo "$(</dev/clipboard)" >> $HOME/cliplog.txt
            sleep 1
    fi
done
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.