pbcopy cho Windows?


42

Trong MacOSX có một lệnh có thể dẫn đầu ra của lệnh vào bảng tạm để nó có thể được dán ở một nơi khác trong GUI.

Làm thế nào điều này có thể được thực hiện từ cmd.exe hoặc với lệnh ghép ngắn PowerShell?

Câu trả lời:


62

Sử dụng một cái gì đó như:

someCommand | clip

Điều đó sẽ dẫn kết quả vào clipboard của windows


Gợi ý tốt. Đây là một tiện ích Windows tiêu chuẩn. Trên hầu hết các hệ thống, đó là tại C:\Windows\system32\clip.exe.
Nicole Hamilton

@Nicole Hamilton đúng, nhưng vì đó là một phần của biến PATH, nên không cần phải làm rõ ràng
soandos

Quan điểm của tôi và một phần lý do tôi đưa ra cho bạn một upvote là tôi thích rằng bạn đã đề xuất một tiện ích Windows tiêu chuẩn, không phải là thứ mà OP được cho là sẽ lấy từ đâu đó. Hầu hết mọi người đều biết về PATH.
Nicole Hamilton

3
Đối với hậu thế, nếu bạn muốn nội dung của một tệp, hãy nhập somefile.txt | cắt'
ferventcoder

2
Cửa sổ gây khó chịu echo thêm \ r \ n và không có tiếng vang -n ... vì vậy "echo test | clip" sẽ có test \ r \ n trong bộ đệm sao chép ... echo | set / p = "test" | clip. .. giải quyết tổng
hpavc

6

Tôi đang sử dụng trình vỏ lệnh Git Bash cho Windows và như ai đó đã lưu ý ở trên, việc sử dụng cliprất khó chịu, bởi vì nó cũng sao chép trở lại vận chuyển ở cuối đầu ra của bất kỳ lệnh nào. Vì vậy, tôi đã viết chức năng này để giải quyết nó:

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
}

Ví dụ:

$ pwd | cpy  # copies directory path

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

Tốt một. Nếu bạn đã cài đặt các tiện ích GNU win32, bạn có thể cắt đứt ngắt dòng trvà vẫn sử dụng clip, tức là:pwd | tr -d \r\n | clip
Ben Sinclair

2

Chỉ để tham khảo, tôi đã phải sao chép khóa công khai của mình trực tiếp sau khi Bitbucket đưa ra cảnh báo khóa xấu. Tôi đã có thể sử dụng @soandos trả lời như vậy:

cat ~/.ssh/id_rsa.pub | clipđể sao chép khóa của tôi trực tiếp từ dòng lệnh trên PC. (vì dòng lệnh hút so với thiết bị đầu cuối)


1

Để sử dụng trong WSL / bash . Thêm vào ~/.bashrc:

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

0

Trong PowerShell, chỉ cần đưa văn bản vào Set-Clipboard. Để gõ nhanh, bạn có thể sử dụng bí danh scb. Điều này không thêm một ngắt dòng như cliptiện ích nào.

Ví dụ, lệnh này đặt nội dung của myfile.txtvào bảng tạm:

gc .\myfile.txt | scb

Lưu ý rằng đối với các đối tượng đại diện cho các đối tượng hệ thống tệp, Set-Clipboardsẽ sao chép đối tượng theo nghĩa tương tự như Explorer thực hiện khi bạn Ctrl + C một tệp. Nếu đó không phải là những gì bạn muốn, hãy đưa đối tượng qua Out-Stringđầu tiên.


0

Hàm này thay thế clip Windows tiêu chuẩn trong Git Bash, nơi một dòng mới được sao chép.

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

Điều này dựa trên câu trả lời của Matthew chỉ bảo tồn dòng cuối cùng và giới thiệu một dòng mới. Sử dụng printfđể tránh dòng mới mà echothêm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.