it-swarm-ru.tech

Как я могу загрузить содержимое файла в буфер обмена?

У меня есть файлы, в которые мне нужно скопировать их содержимое в другой файл или в приложение, и вместо того, чтобы открывать их, выбрать весь текст, затем скопировать и вставить. Я хотел бы знать, смогу ли я эффективно cat содержимое файла в буфер обмена , Это возможно?

Программа для Windows подойдет, но то, что работает в Linux, тоже будет полезно. Я не использую Mac, но это может быть полезно для других. Бонусные баллы, если это можно сделать в командной строке.

80
Jonathon Watney

Поскольку вы не спрашивали о компьютерах Mac: cat file | pbcopy (а также pbpaste) для них.

62
Arjan

xclip (возможно, доступно в репозиториях вашей системы Linux) будет работать для любой системы X11, включая большинство версий Linux или даже X, работающий под Windows или Mac OSX.

Пример использования: xclip -sel clip < ~/.ssh/id_rsa.pub

51
Justin Smith

В Linux вы можете использовать xsel для имитации pbcopy и pbpaste:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

Источник: Где Уолден? »Pbcopy и pbpaste для Linux

33
pmac72

В Linux и других возможных системах, которые поддерживают xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

Я видел, что @JustinSmith также упомянул xclip, но пропустил пример, поэтому пришлось поискать его самому.

Еще один полезный: вставьте ваш буфер обмена в файл.

xclip -o -selection c > file_to_paste_to.txt

Источник

14
Sam Stoelinga

Используйте эту программу f2clip. Запустите его из командной строки. Копирует содержимое файла в буфер обмена. Я использую его для копирования текстовых файлов в веб-браузер для дальнейшей обработки. Загрузите его с http://smrz.xf.cz/f2clip.exe или напишите свой собственный из этого источника (это ужасно):

 program f2clip;

 {$APPTYPE CONSOLE}

 uses
SysUtils,
clipbrd;

var i,r:integer;
    s:string;
 f:file;
 buf:array[0..1024*1024-1] of byte;

 data:string;
 d:pointer;
 begin
 try

 { TODO -oUser -cConsole Main : Insert code here }
    if (paramcount=0) then begin
    writeln('parameters: f2clip filename.txt');
end else begin
    write('parameter count: ');
  writeln(paramcount);  
    for i:=1 to paramcount do begin
    s:=paramstr(i);
    writeln('file: ',s);

    assignfile(f,s);
    reset(f,1);
    BlockRead(f,buf,1024*1024,r);
    writeln('size: ',r);
    buf[r]:=0;

    d:[email protected](buf[0]);
    data:=PAnsiChar(d);
Clipboard.AsText := data;
    close(f);
  end;

  end;

 except
   on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
 end;
end.

Сожалею.

1
JanSmrz

используйте команду «type» в качестве эквивалента «cat» в окнах для передачи содержимого файлов в текстовом формате в стандартный вывод (стандартный вывод) для этого эмулятора терминала/подсказки, который вы используете (CMD в окнах). Таким образом, вы можете объединить команды в нечто вроде этого:

type myFile.txt > clip 

теперь содержимое myFile.txt передается в буфер clipBoard (я думаю, что это просто буфер, так как это не linux). Это также глобальное значение, поэтому одно значение хранится за раз во всей ОС. Так что это для функции «копировать», теперь для «вставить»:

  • Либо вы хотите добавить к существующему файлу значения CLIP, как обычно:

    введите clip >> target.txt (или ваш целевой файл - добавит данные, не удаляя существующий внутри этого целевого файла)

  • Или вы хотите добавить/создать новый файл со значениями CLIP, например:

    введите clip> target.txt (или ваш целевой файл - добавьте данные или OVERWRITE означает удаление существующего в этом целевом файле)

0
Hichem Al Abbessi