56 votes

Pbcopy pour Windows?

Sous MacOSX, il existe une commande qui peut rediriger 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 cmdlet PowerShell ?

81voto

soandos Points 23540

Utilisez quelque chose comme :

someCommand | clip

Cela enverra le résultat dans le presse-papiers de Windows

9voto

Matthew Points 191

Je suis en train d'utiliser l'invite de commandes Git Bash pour Windows, et comme quelqu'un l'a noté ci-dessus, utiliser clip est très ennuyeux, car cela copie également le retour à la ligne à la fin de la sortie de n'importe quelle commande. J'ai donc écrit cette fonction pour y remédier:

function cpy {
while read data; do     # lit les données envoyées à cpy
    echo "$data" | cat > /dev/clipboard     # affiche les données et les écrit dans /dev/clipboard
done
tr -d '\n' < /dev/clipboard > /dev/clipboard     # supprime les sauts de ligne du presse-papiers
}

Donc, par exemple:

$ pwd | cpy  # copie le chemin du répertoire

$ git branch | cpy # copie la branche actuelle du dépôt git dans le presse-papiers

4voto

Ben Racicot Points 140

Juste pour référence, j'ai dû copier ma clé publique directement après que Bitbucket m'ait donné un avertissement de mauvaise clé. J'ai pu utiliser la réponse de @soandos comme suit :

cat ~/.ssh/id_rsa.pub | clip pour copier ma clé directement depuis la ligne de commande sur un PC. (puisque la ligne de commande est moins bien que le terminal)

3voto

Ben N Points 38070

En PowerShell, il suffit de rediriger le texte vers Set-Clipboard. Pour taper rapidement, vous pouvez utiliser l'alias scb. Cela n'ajoute pas de saut de ligne supplémentaire comme le fait l'utilitaire clip.

Par exemple, cette commande met le contenu de myfile.txt dans le presse-papiers :

gc .\myfile.txt | scb

Remarquez que pour les objets qui représentent des objets du système de fichiers, Set-Clipboard copiera l'objet de la même manière qu'Explorer le fait lorsque vous faites Ctrl+C sur un fichier. Si ce n'est pas ce que vous vouliez, redirigez d'abord l'objet à travers Out-String.

1voto

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

function clip {
    printf "$( /dev/clipboard
}

Ceci est basé sur la réponse de Matthew qui ne préserve que la dernière ligne et introduit une nouvelle ligne finale. L'utilisation de printf évite la nouvelle ligne ajoutée par echo.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X