web-dev-qa-db-ja.com

Windows用のpbcopy?

MacOSXには、コマンドの出力をクリップボードにパイプして、GUIの他の場所に貼り付けることができるコマンドがあります。

これはどのようにcmd.exeから、またはPowerShellコマンドレットで実行できますか?

46
leeand00

次のようなものを使用してください:

someCommand | clip

結果をWindowsクリップボードにパイプします

67
soandos

私はGit Bashコマンドシェルfor Windowsを使用しています。上記のように、clipはコマンドの出力の最後にキャリッジリターンをコピーするため、非常に煩わしいものです。だから私はそれを扱うためにこの関数を書きました:

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
}

だから例えば:

$ pwd | cpy  # copies directory path

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

参考までに、Bitbucketから不正なキーの警告が出された直後に、公開キーをコピーする必要がありました。私は@soandosの答えを次のように使用することができました:

cat ~/.ssh/id_rsa.pub | clipキーをPCのコマンドラインから直接コピーします。 (コマンドラインは端末と比較して吸うので)

3
Ben Racicot

WSL/bashで使用します。追加 ~/.bashrc

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

この関数は、末尾の改行がコピーされるGit Bashの標準のWindowsクリップを置き換えます。

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

これは Matthew's answer に基づいており、最後の行のみが保持され、末尾に改行が導入されます。 printfを使用すると、echoが追加する改行が回避されます。

1
Ed Chapel

PowerShellでは、テキストを Set-Clipboard にパイプするだけです。入力を高速化するには、エイリアスscbを使用できます。これは、clipユーティリティのように余分な改行を追加しません。

たとえば、次のコマンドはmyfile.txtの内容をクリップボードに入れます。

gc .\myfile.txt | scb

ファイルシステムオブジェクトを表すオブジェクトの場合、Set-Clipboardは、ファイルをCtrl + Cしたときにエクスプローラーが行うのと同じ意味でオブジェクトをコピーすることに注意してください。それが希望どおりでない場合は、最初にオブジェクトをOut-Stringにパイプしてください。

0
Ben N