Odpowiedzi:
Użyj czegoś takiego:
someCommand | clip
Spowoduje to przeniesienie wyniku do schowka systemu Windows
Używam powłoki poleceń Git Bash dla Windows i, jak ktoś zauważył powyżej, używanie clipjest bardzo denerwujące, ponieważ kopiuje również powrót karetki na końcu danych wyjściowych dowolnego polecenia. Więc napisałem tę funkcję, aby ją rozwiązać:
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
}
Na przykład:
$ pwd | cpy # copies directory path
$ git branch | cpy # copies current branch of git repo to clipboard
tri nadal korzystać z niego clip, tj .:pwd | tr -d \r\n | clip
Dla odniesienia musiałem skopiować mój klucz publiczny bezpośrednio po tym, jak Bitbucket dał mi złe ostrzeżenie o kluczu. Byłem w stanie użyć odpowiedzi @soandos w następujący sposób:
cat ~/.ssh/id_rsa.pub | clipaby skopiować mój klucz bezpośrednio z wiersza poleceń na komputerze. (ponieważ wiersz poleceń jest do bani w porównaniu do terminala)
W PowerShell po prostu potokuj tekst do Set-Clipboard. Aby szybko pisać, możesz użyć aliasu scb. Nie dodaje to dodatkowego podziału linii, jak to cliprobi narzędzie.
Na przykład to polecenie umieszcza zawartość myfile.txtschowka:
gc .\myfile.txt | scb
Zauważ, że w przypadku obiektów reprezentujących obiekty systemu plików, Set-Clipboardskopiuje obiekt w tym samym sensie, co Eksplorator, gdy kombinujesz Ctrl + C plik. Jeśli nie tego chciałeś, Out-Stringnajpierw przeprowadź obiekt .
Ta funkcja zastępuje standardowy klip systemu Windows w Git Bash, w którym kopiowany jest znak nowej linii.
function clip {
printf "$(</dev/stdin)" | cat > /dev/clipboard
}
Jest to oparte na odpowiedzi Matthew, która zachowuje tylko ostatnią linię i wprowadza końcową nową linię. Używanie printfpozwala uniknąć echododawania nowej linii .
C:\Windows\system32\clip.exe.