pbcopy para Windows?

33

No MacOSX há um comando que pode canalizar a saída de um comando para a área de transferência para que possa ser colado em algum outro lugar na GUI.

Como isso pode ser feito a partir do cmd.exe ou com um cmdlet do PowerShell?

    
por leeand00 11.09.2012 / 05:22

5 respostas

50

Use algo como:

someCommand | clip

Isso canalizará o resultado para a área de transferência do Windows

    
por 11.09.2012 / 05:44
6

Estou usando o shell de comando do Git Bash para Windows e, como alguém observou acima, usar clip é muito chato, porque também copia o retorno de carro no final da saída de qualquer comando. Então eu escrevi essa função para resolver isso:

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
}

Então, por exemplo:

$ pwd | cpy  # copies directory path

$ git branch | cpy # copies current branch of git repo to clipboard
    
por 25.01.2017 / 16:53
2

Apenas para referência, eu tive que copiar minha chave pública diretamente depois que o Bitbucket estava me dando um aviso de chave ruim. Consegui usar a resposta @soandos assim:

cat ~/.ssh/id_rsa.pub | clip para copiar minha chave diretamente da linha de comando em um PC. (desde que a linha de comando suga em comparação ao terminal)

    
por 09.01.2016 / 15:45
0

No PowerShell, insira o texto em Set-Clipboard . Para digitação rápida, você pode usar o alias scb . Isso não adiciona uma quebra de linha extra como o utilitário clip .

Por exemplo, este comando coloca o conteúdo de myfile.txt na área de transferência:

gc .\myfile.txt | scb

Observe que, para objetos que representam objetos do sistema de arquivos, Set-Clipboard copia o objeto no mesmo sentido que o Explorer faz quando você pressiona Ctrl + C em um arquivo. Se não é isso que você queria, canalize o objeto através de Out-String primeiro.

    
por 25.01.2017 / 20:27
0

Esta função substitui o clipe padrão do Windows no Git Bash, onde uma nova linha é copiada.

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

Isso é baseado na resposta de Matthew , que preserva apenas a última linha e introduz uma nova linha à direita. Usar printf evita a nova linha que echo adiciona.

    
por 17.04.2017 / 23:27