pbcopy pour Windows?


42

Dans MacOSX, une commande peut diriger la sortie d’une commande vers le Presse-papiers afin qu’elle puisse être collée ailleurs dans l’interface graphique.

Comment cela peut-il être fait à partir de cmd.exe ou avec une applet de commande PowerShell?

Réponses:


62

Utilisez quelque chose comme:

someCommand | clip

Cela conduira le résultat au presse-papiers de Windows


Bonne suggestion. Ceci est un utilitaire Windows standard. Sur la plupart des systèmes, c'est à C:\Windows\system32\clip.exe.
Nicole Hamilton

@NicoleHamilton à droite, mais puisque cela fait partie de la variable PATH, il n'est pas nécessaire de le rendre explicite
soandos le

Mon point et une partie de la raison pour laquelle je vous ai donné un vote positif, c’est que j’ai aimé le fait que vous ayez suggéré un utilitaire Windows standard, et non quelque chose que l’opérateur était supposé supprimer de quelque part. La plupart des gens connaissent PATH.
Nicole Hamilton

3
Pour la postérité, si vous voulez le contenu d'un fichier, tapez 'somefile.txt | clip '
ferventcoder

2
De manière gênante, Windows echo ajoute \ r \ n et n'a pas d'écho -n ... donc "echo test | clip" aura le test \ r \ n dans le tampon de copie ... echo | set / p = "test" | clip. .. adresse cette brute
hpavc

6

J'utilise le shell de commande Git Bash pour Windows, et comme quelqu'un l'a mentionné ci-dessus, l'utilisation clipest très ennuyeuse, car elle copie également le retour chariot à la fin de la sortie d'une commande. J'ai donc écrit cette fonction pour y répondre:

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
}

Donc par exemple:

$ pwd | cpy  # copies directory path

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

Bon un. Si vous avez installé les utilitaires GNU win32, vous pouvez découper le saut de ligne tret le conserver clip, par exemple:pwd | tr -d \r\n | clip
Ben Sinclair le

2

Juste pour référence, je devais copier ma clé publique directement après que Bitbucket m'avait averti. J'ai pu utiliser @soandos répondre comme suit:

cat ~/.ssh/id_rsa.pub | clipcopier ma clé directement à partir de la ligne de commande sur un PC. (puisque la ligne de commande est nulle comparée au terminal)


1

Pour une utilisation dans WSL / bash . Ajouter à ~/.bashrc:

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

Cela ne devrait-il pas être printf %s "$(...pour empêcher le% d’expansion dans l’entrée? Je ne sais pas pourquoi le printf est nécessaire
w00t il y a

0

Dans PowerShell, il suffit de diriger le texte dans Set-Clipboard. Pour taper rapidement, vous pouvez utiliser l'alias scb. Cela n'ajoute pas de saut de ligne supplémentaire, contrairement à l' cliputilitaire.

Par exemple, cette commande place le contenu de myfile.txtdans le presse-papiers:

gc .\myfile.txt | scb

Notez que pour les objets représentant des objets de système de fichiers, Set-Clipboardl'objet sera copié de la même façon que l'explorateur le fait lorsque vous Ctrl + C un fichier. Si ce n'est pas ce que vous souhaitiez, dirigez d'abord l'objet vers lui Out-String.


0

Cette fonction remplace le clip Windows standard dans Git Bash où une nouvelle ligne finale est copiée.

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

Ceci est basé sur la réponse de Matthew qui ne conserve que la dernière ligne et introduit une nouvelle ligne. Utilisation printfévite la nouvelle ligne qui echoajoute.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.