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 clip
jest 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
tr
i 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 | clip
aby 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 clip
robi narzędzie.
Na przykład to polecenie umieszcza zawartość myfile.txt
schowka:
gc .\myfile.txt | scb
Zauważ, że w przypadku obiektów reprezentujących obiekty systemu plików, Set-Clipboard
skopiuje obiekt w tym samym sensie, co Eksplorator, gdy kombinujesz Ctrl + C plik. Jeśli nie tego chciałeś, Out-String
najpierw 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 printf
pozwala uniknąć echo
dodawania nowej linii .
C:\Windows\system32\clip.exe
.