В MacOSX есть команда, которая может направить вывод команды в буфер обмена, чтобы ее можно было вставить куда-нибудь еще в GUI.
Как это можно сделать из cmd.exe или с помощью командлета PowerShell?
В MacOSX есть команда, которая может направить вывод команды в буфер обмена, чтобы ее можно было вставить куда-нибудь еще в GUI.
Как это можно сделать из cmd.exe или с помощью командлета PowerShell?
Используйте что-то вроде:
someCommand | clip
Это передаст результат в буфер обмена Windows
Я использую командную оболочку Git Bash для 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
Просто для справки мне пришлось скопировать мой открытый ключ сразу после того, как Bitbucket дал мне предупреждение о плохом ключе. Я смог использовать ответ @soandos так:
cat ~/.ssh/id_rsa.pub | clip
чтобы скопировать мой ключ прямо из командной строки на ПК. (так как командная строка отстой по сравнению с терминалом)
В PowerShell просто перенаправьте текст в Set-Clipboard
. Для быстрой печати вы можете использовать псевдоним scb
. Это не добавляет дополнительного разрыва строки, как это делает утилита clip
.
Например, эта команда помещает содержимое myfile.txt
в буфер обмена:
gc .\myfile.txt | scb
Обратите внимание, что для объектов, представляющих объекты файловой системы, Set-Clipboard
будет копировать объект в том же смысле, что и Explorer, когда вы нажимаете Ctrl+C для файла. Если это не то, что вы хотели, сначала направьте объект через Out-String
.
Эта функция заменяет стандартный клип Windows в Git Bash, где копируется завершающий символ новой строки.
function clip {
printf "$(</dev/stdin)" | cat > /dev/clipboard
}
Это основано на ответе Мэтью, который сохраняет только последнюю строку и вводит перевод строки. Использование printf
позволяет избежать новой строки, которую добавляет echo
.