pbcopy для Windows?


42

У MacOSX є команда, яка може передавати висновок команди в буфер обміну, щоб вона могла бути вставлена ​​деінде в GUI.

Як це зробити з cmd.exe або з командлетом PowerShell?

Відповіді:


62

Використовуйте щось на кшталт:

someCommand | clip

Це передасть результат у буфер обміну Windows


Гарна пропозиція. Це стандартна утиліта Windows. У більшості систем він є C:\Windows\system32\clip.exe.
Ніколь Гамільтон

@NicoleHamilton справа, але оскільки це частина змінної PATH, це не потрібно робити явне
soandos

Моя думка та частина причини, по якій я дав вам підсумок, - це те, що мені сподобалось, що ви запропонували стандартну утиліту Windows, а не те, що ОП повинно було звідкись бути невідомим. Більшість людей знає про ПАТ.
Ніколь Гамільтон

3
Для нащадків, якщо ви хочете, щоб вміст файлу, введіть деякий файл.txt | кліп '
ferventcoder

2
Дратівливо Windows echo додає \ r \ n і не має ехо -n ... тому "echo test | кліп" матиме тест \ r \ n у буфері копії ... echo | set / p = "test" | кліп. .. звертається до цього грубого
hpavc

6

Я використовую командну оболонку Git Bash для Windows, і, як хтось зазначав вище, використання clipдуже дратує, оскільки воно також копіює повернення каретки в кінці виводу будь-якої команди. Тому я написав цю функцію, щоб вирішити її:

function cpy {
while read data; do     # reads data piped in to cpy
    echo "$data" | cat > /dev/clipboard     # echos the data and writes that to /dev/clipboard
done
tr -d '\n' < /dev/clipboard > /dev/clipboard     # removes new lines from the clipboard
}

Так, наприклад:

$ pwd | cpy  # copies directory path

$ git branch | cpy # copies current branch of git repo to clipboard

Хороший. Якщо у вас встановлені утиліти GNU win32, ви можете обрізати перерву лінії trта використовувати її досі clip, тобто:pwd | tr -d \r\n | clip
Бен Сінклер

2

Для довідки мені довелося скопіювати свій відкритий ключ безпосередньо після того, як Bitbucket видав мені погане попередження. Мені вдалося використовувати @soandos відповідь так:

cat ~/.ssh/id_rsa.pub | clipскопіювати свій ключ безпосередньо з командного рядка на ПК. (оскільки командний рядок смокче порівняно з терміналом)


1

Для використання в WSL / bash . Додати до ~/.bashrc:

function pbcopy() {
    printf $(</dev/stdin) | clip.exe
}
export -f pbcopy

0

У PowerShell просто вставте текст у Set-Clipboard. Для швидкого набору тексту можна використовувати псевдонім scb. Це не додає додатковий розрив рядка, як це clipробить утиліта.

Наприклад, ця команда розміщує вміст myfile.txtбуфера обміну:

gc .\myfile.txt | scb

Зауважте, що для об’єктів, які представляють об'єкти файлової системи, Set-Clipboardбуде скопійовано об'єкт у тому ж сенсі, що і Explorer, коли ви Ctrl + C файл. Якщо це не те, що ви хотіли, Out-Stringспочатку пропустіть об'єкт .


0

Ця функція замінює стандартний кліп для Windows у Git Bash, куди скопіюється зворотний новий рядок.

function clip {
    printf "$(</dev/stdin)" | cat > /dev/clipboard
}

Це ґрунтується на відповіді Метью, яка зберігає лише останній рядок і вводить зворотний новий рядок. Використання printfуникає echoдодавання нового рядка .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.