pbcopy per Windows?


42

In MacOSX c'è un comando che può reindirizzare l'output di un comando negli Appunti in modo che possa essere incollato da qualche altra parte nella GUI.

Come è possibile farlo da cmd.exe o con un cmdlet di PowerShell?

Risposte:


62

Usa qualcosa come:

someCommand | clip

Ciò condurrà il risultato negli Appunti di Windows


Buon consiglio Questa è un'utilità standard di Windows. Sulla maggior parte dei sistemi, è a C:\Windows\system32\clip.exe.
Nicole Hamilton,

@NicoleHamilton, giusto, ma poiché fa parte della variabile PATH, non è necessario
renderlo

Il mio punto e parte del motivo per cui ti ho dato un voto era che mi piaceva che avessi suggerito un'utilità standard di Windows, non qualcosa che l'OP avrebbe dovuto d / l da qualche parte. Molte persone conoscono il PERCORSO.
Nicole Hamilton,

3
Per i posteri, se si desidera il contenuto di un file, è 'digitare somefile.txt | clip '
ferventcoder

2
Windows echo aggiunge fastidiosamente un \ r \ n e non ha echo -n ... quindi "test echo | clip" avrà test \ r \ n nel buffer di copia ... echo | set / p = "test" |. .. indirizzi questo grave
hpavc

6

Sto usando la shell dei comandi di Git Bash per Windows, e come qualcuno ha notato sopra, usare clipè molto fastidioso, perché copia anche il ritorno a capo alla fine dell'output di qualsiasi comando. Quindi ho scritto questa funzione per affrontarla:

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
}

Quindi per esempio:

$ pwd | cpy  # copies directory path

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

Buona Se hai installato GNU win32 utils potresti tagliare la linea con tre continuare a usare clip, cioè:pwd | tr -d \r\n | clip
Ben Sinclair,

2

Solo per riferimento ho dovuto copiare la mia chiave pubblica direttamente dopo che Bitbucket mi stava dando un avviso di chiave errata. Sono stato in grado di utilizzare la risposta di @soandos in questo modo:

cat ~/.ssh/id_rsa.pub | clipper copiare la mia chiave direttamente dalla riga di comando su un PC. (poiché la riga di comando fa schifo rispetto al terminale)


1

Per l'uso in WSL / bash . Aggiungi a ~/.bashrc:

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

Non dovrebbe essere printf %s "$(...per impedire l'espansione% nell'input? Non sono sicuro del motivo per cui è necessario printf
w00t

0

In PowerShell, inserisci semplicemente il testo in Set-Clipboard. Per una digitazione veloce, è possibile utilizzare l'alias scb. Ciò non aggiunge un'interruzione di riga aggiuntiva come l' cliputilità.

Ad esempio, questo comando inserisce il contenuto degli myfile.txtappunti:

gc .\myfile.txt | scb

Si noti che per gli oggetti che rappresentano oggetti del file system, Set-Clipboardl'oggetto verrà copiato nello stesso senso che fa Explorer quando si preme Ctrl + C un file. Se non è quello che volevi, passa Out-Stringprima l'oggetto .


0

Questa funzione sostituisce la clip standard di Windows in Git Bash in cui viene copiata una nuova riga finale.

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

Questo si basa sulla risposta di Matthew che conserva solo l'ultima riga e introduce una nuova riga finale. L'utilizzo printfevita la nuova riga che echoaggiunge.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.