Для работы с буфером обмена в Powershell 5 есть две команды Set-Clipboard и Get-Clipboard. Одна команда может вставить данные из буфера, а другая установить.
Например так мы получим данные из буфера:
Get-Clipboard
Из дополнительных ключей есть Format, который выполнит форматирование буфера. Если мы выделили ряд файлов, то можем получить такой результат:
Get-Clipboard -Format FileDropList
Кроме FileDropList есть еще значения:
- Text - по умолчанию
- FileDropList - получение данных о файлах
- Image - получение данных о картинке
- Audio - получение данных об аудио
Например данные со свойством Image я не смог получить из файловой системы, только с картикне в интернете с браузера Edge:
Get-Clipboard -Format Image
Остальные ключи у меня не работают или аналогично другому примеру только в каких-то специфичных условиях. Это ключ Raw, который должен игнорировать символы новой строки и TextFormatType, в котором указывается тип данных буфера. Ключ TextFormatType может принимать следующие значения (у меня они не работают):
- Text
- UnicodeText
- Rtf
- Html
- CommaSeparatedValue
Противоположны ключ устанавливает значения в буфер. Так мы скопируем значение:
$var = "строка для копирования"
Set-Clipboard -Value $var
Можно к существующему буферу добавить еще значения:
$var2 = "строка для копирования2"
Set-Clipboard -Append $var2
По идеи мы можем скопировать содержимое все папки с ключом Path, но он, похоже, тоже не работает. Аналогичная ситуация с ключом -AsHtml, который допускает форматирование HTML, но если его установить, то ничего не получим.
Примеры работы с командами буфера обмена в Powershell
Очевидно, что примеров работы масса, но связана она в основном с рутинными действиями. Например нам нужно отсылать какую-то информацию через Powershell в определенном формате. У нас есть выбор - помещать все в файл и отсылать его, либо копировать как сплошной текст, либо отсылать в виде HTML. На примере ниже я копирую в буфер данные по процессам и преобразую в HTML. После этого я могу просто вставить эту часть в письмо:
Get-Process | Select Name,ID | Convertto-HTML | Set-Clipboard
Конвертация вывода через ConvertTo-Html в Powershell
Другой пример использования - это математические задачи, которые выполняются часто. Можно поместить в скрипт .ps1 и запускать его:
$result = 2 + (Get-Clipboard)
Set-Clipboard $result
Get-Clipboard
...
Подписывайтесь на наш Telegram канал
Теги: #powershell