Как передать текст из командной строки в буфер обмена

34

Я хотел бы сделать что-то вроде

dir *.* > clipboard

то есть. получить, чтобы получить стандартный вывод программы командной строки, скопированной в буфер обмена. Можно ли это сделать на стандартном компьютере XP без дополнительных программ?

Вилле Коскинен
источник
7
Только для архивов: эквиваленты Mac OS X называются pbcopyи pbpaste.
Арьян
superuser.com/questions/231023/… упоминает petri.co.il/software/clip.zip, который, по-видимому, на Windows Server 2003 или 2003 комплект ресурсов, может быть. Но там это для скачивания
Barlop

Ответы:

31

Я не верю в это - Vista (или NT4) представила clipинструмент, который будет выполнять вашу команду как dir | clip- но в XP нет ничего. Если вы готовы использовать сторонние приложения, есть такая , которая работает, как указано выше, за исключением того, что называется cb, а не клип.

Phoshi
источник
2
как историческая справка, ссылка Арджана на заметку о поддержке MS ссылается на NT4. но вы, вероятно, правы, что потребительские версии Windows не включали clip.exe до Vista.
Квик-кихот
О, достаточно справедливо. Никогда по-настоящему не получится возиться с бизнес-машинами! :(
Phoshi
если это утешит, я полностью упустил все удовольствие от Windows NT 3.51. и я вообще не был поклонником NT, пока некоторое время не играл с 2000.
Квик-кихот
18

Для Windows и не Windows этот пост (неработающая ссылка) гласил:

В Windows Vista или более поздней версии попробуйте: echo hello | clip

В Linux попробуйте: echo hello | xclip

В Mac OS X попробуйте: echo hello | pbcopy

Например, вы можете сделать (cat myFile.txt | xclip). Это позволит вам редактировать буфер обмена напрямую.

(Я пришел сюда через Google в поисках эквивалента Mac xclip)

Аналогично для содержимого файлов (как у вас нет catв Windows):

type filename | clip  % OR clip < filename   %windows
cat filename | xclip  # OR xclip < filename  # X11 / Unix / Linux
cat filename | pbcopy # OR pbcopy < filename # MacOS X
databyte
источник
1
Ссылка выше теперь выдает 500. Для тех из вас, кто не знаком с pbcopy, <kbd> Command </ kbd> + <kbd> V </ kbd> не вставляет: вам нужно ввести (или псевдоним что-то более короткое) pbpaste.
eebbesen
6

Я изучил это для себя ранее сегодня. Ниже приводится кое-что полезное для тех, кто хочет вставить и извлечь информацию из буфера обмена в дистрибутиве Linux. Ниже это то, что может оказаться полезным для тех, у кого есть окна.

Linux

По умолчанию xclip использует «основной» буфер обмена, который вы скопировали с помощью мыши. Чтобы заставить его использовать буфер обмена, используйте вместо него xclip -sel clip.

комментарий № 3 здесь:
http://ubuntuforums.org/showthread.php?t=413786

Windows

Функциональность также доступна в дистрибутиве Active Perl, что я и использовал в окне для окон в этом упражнении; Windows clip.exe, по-видимому, не позволяет читать данные из буфера обмена (только запись в буфер обмена).

http://www.xav.com/perl/site/lib/Win32/Clipboard.html

BenRose3d
источник
Поскольку вы упомянули Perl, я хотел бы добавить, что ruby ​​и python также предоставляют похожую библиотеку.
слабый
4

Там нет никакого стандартного способа, но вы, очевидно, можете использовать, clip.exeкоторый поставляется с комплектом ресурсов Windows Server 2003. Источник

Теперь проблема становится в получении легальной копии этого.

ChrisF
источник
Интересно, насколько это законно? Интересно, к какому типу лицензирования MS ставят свои маленькие инструменты Cli?
Фоши
1
Он также был доступен в наборе ресурсов для NT 4 и Server 2000, если у вас есть какие-либо из них. Похоже, он недоступен в подмножестве 2000-х инструментов РК, которое можно загрузить бесплатно.
AdamV
1

В PowerShell это можно сделать так:

dir *.* | clip
отметка
источник
1
Кроме того: см. «Clip.exe, несовместимый с блокнотом» по адресу support.microsoft.com/kb/172596
Арджан,
2
Эта ссылка не относится к PowerShell. Я проверил это, и все отлично работает с Блокнотом.
Mark
Я могу подтвердить, что это работает на XP, если в вашем пути находится Server 2003 clip.exe. Также работает в стандартной подсказке CMD
Шевек
1
клип - это просто внешний инструмент, поэтому он будет работать на любых консолях, а не только на powershell
phuclv
0

Начиная с Windows Vista и более поздних версий в DOS имеется встроенная команда clip :

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.
Мэтью Лок
источник
-1

Если вы используете Cygwin в Windows (например, Git для Windows). Вам лучше выгрузить содержимое во временный файл, а затем «unix2dos» временный файл, прежде чем на самом деле передать «клип»

beenotung
источник
Добро пожаловать в Супер пользователя! Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос. clipне существует в Windows XP.
ДэвидПостилл