pbcopy untuk Windows?


42

Di MacOSX ada perintah yang dapat menyalurkan output dari perintah ke clipboard sehingga dapat disisipkan di tempat lain di GUI.

Bagaimana ini bisa dilakukan dari cmd.exe atau dengan cmdlet PowerShell?

Jawaban:


62

Gunakan sesuatu seperti:

someCommand | clip

Itu akan menyalurkan hasilnya ke clipboard windows


Saran yang bagus Ini adalah utilitas Windows standar. Pada kebanyakan sistem, itu ada di C:\Windows\system32\clip.exe.
Nicole Hamilton

@ NicoleHamilton benar, tetapi karena itu adalah bagian dari variabel PATH, itu tidak perlu dibuat eksplisit
soandos

Maksud saya dan bagian dari alasan saya memberi Anda upvote adalah bahwa saya suka bahwa Anda telah menyarankan utilitas Windows standar, bukan sesuatu yang seharusnya OP lakukan pada suatu tempat. Kebanyakan orang tahu tentang PATH.
Nicole Hamilton

3
Untuk anak cucu, jika Anda menginginkan konten file, ketikkan somefile.txt | clip '
ferventcoder

2
Mengganggu windows echo menambahkan \ r \ n dan tidak memiliki echo -n ... jadi "echo test | clip" akan memiliki tes \ r \ n di copy buffer ... echo | set / p = "test" | clip. .. alamat ini kotor
hpavc

6

Saya menggunakan shell perintah Git Bash untuk Windows, dan sebagai seseorang yang disebutkan di atas, menggunakan clipsangat mengganggu, karena ia juga menyalin carriage return di akhir output dari perintah apa pun. Jadi saya menulis fungsi ini untuk mengatasinya:

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
}

Jadi misalnya:

$ pwd | cpy  # copies directory path

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

Bagus Jika Anda telah menginstal utiliti GNU win32, Anda dapat memangkas garis pemisah dengan trdan masih digunakan clip, yaitu:pwd | tr -d \r\n | clip
Ben Sinclair

2

Hanya untuk referensi saya harus menyalin kunci publik saya langsung setelah Bitbucket memberi saya peringatan kunci yang buruk. Saya bisa menggunakan jawaban @soando seperti:

cat ~/.ssh/id_rsa.pub | clipuntuk menyalin kunci saya langsung dari baris perintah pada PC. (sejak baris perintah menyebalkan dibandingkan dengan terminal)


1

Untuk digunakan dalam WSL / bash . Tambahkan ke ~/.bashrc:

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

Bukankah seharusnya itu printf %s "$(...untuk mencegah ekspansi% dalam input? Saya tidak yakin mengapa printf diperlukan
w00t

0

Di PowerShell, cukup pipa teks ke Set-Clipboard. Untuk mengetik cepat, Anda bisa menggunakan alias scb. Ini tidak menambah jeda baris tambahan seperti cliputilitas.

Misalnya, perintah ini meletakkan konten myfile.txtdi clipboard:

gc .\myfile.txt | scb

Perhatikan bahwa untuk objek yang mewakili objek sistem file, Set-Clipboardakan menyalin objek dalam arti yang sama seperti yang dilakukan Explorer saat Anda Ctrl + C file. Jika bukan itu yang Anda inginkan, pipa objek Out-Stringterlebih dahulu.


0

Fungsi ini menggantikan klip Windows standar di Git Bash di mana baris baru tambahan disalin.

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

Ini didasarkan pada jawaban Matius yang hanya mempertahankan baris terakhir dan memperkenalkan baris baru. Menggunakan printfmenghindari baris baru yang echomenambahkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.