В версии Windows PowerShell 5.1 появились два встроенных командлета, которые позволяют скопировать и вставить данные из буфера обмена Windows из командной строки PowerShell.
Чтобы скопировать в буфер обмена текст, выполните команду:
Set-Clipboard -Value "Test clipboard"
Чтобы вывести (вставить) текущее содержимое буфера обмена в командную строку, выполните:
Get-Clipboard
С помощью PowerShell вы можете добавить данные в буфер обмена, не затирая его содержимое. Для этого используется команда Set-Clipboard с параметром -Append:
Set-Clipboard -Value " add new text" -Append
В буфер обмена можно скопировать не только текст, но и файлы. В следующем примере мы скопируем в буфер обмена содержимое каталога:
Get-ChildItem "c:\ps" | Set-Clipboard
Вы можете вывести информацию о файлах, скопированных в буфер обмена:
Get-Clipboard -Format FileDropList
Также вы можете использовать следующие атрибуты Get-Clipboard, при получении информации о различных файлах в буфере обмена:
Text
— по умолчаниюFileDropList
— вывести информацию о файлах в буфере обменаImage
— получить данных о картинкеAudio
— получить данных об аудио файле
Для очистки буфер обмена можно использовать команду:
Set-Clipboard -Value $null
В предыдущих версиях PowerShell (до 5.1) вы можете скопировать данные в буфер обмена командой:
$myVar = Get-Process
$myVar | clip.exe
Чтобы получить содержимое буфера обмена:
Add-Type -AssemblyName PresentationCore
[Windows.Clipboard]::GetText()
Можно проверить, содержит ли буфер обмена текстовые данные или файлы:
[Windows.Clipboard]::ContainsText()
[Windows.Clipboard]::ContainsFileDropList()
Если в буфере обмена только текст, первая команда вернет True, а вторая False.
Для очистки буфера обмена выполните команду:
[Windows.Clipboard]::Clear()