Set-Clipboard
Sets the contents of the clipboard.
Syntax
Set-Clipboard
[-Value] <string[]>
[-Append]
[-PassThru]
[-AsOSC52]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Set-Clipboard
cmdlet sets the contents of the clipboard.
Note
On Linux, this cmdlet requires the xclip
utility to be in the path. On macOS, this cmdlet uses
the pbcopy
utility.
Examples
Example 1: Copy text to the clipboard
Set-Clipboard -Value "This is a test string"
Example 2: Copy the contents of a file to the clipboard
This example pipes the contents of a file, a public ssh key, to the clipboard. Then, the key can be pasted into another application, like GitHub.
Get-Content C:\Users\user1\.ssh\id_ed25519.pub | Set-Clipboard
Example 3: Copy text to the clipboard of the local host over an SSH remote session
The AsOSC52 parameter allows you to set the clipboard of the local machine when connected to a remote session over SSH.
Set-Clipboard -Value "This is a test string" -AsOSC52
Example 4: Set the default value of the **AsOSC52** parameter
You can detect if you are connected to a remote session over SSH by checking the value of the
$env:SSH_CLIENT
or $env:SSH_TTY
environment variables. If either of these variables are set,
then you are connected to a remote session over SSH. You can use this information to set the default
value of the AsOSC52 parameter. Add one of the following lines to your PowerShell profile
script.
$PSDefaultParameterValues['Set-Clipboard:AsOSC52'] = $env:SSH_CLIENT
$PSDefaultParameterValues['Set-Clipboard:AsOSC52'] = $env:SSH_TTY
For more information about $PSDefaultParameterValues
, see
about_Parameters_Default_Values.
Parameters
-Append
Indicates that the cmdlet should add to the clipboard instead of replacing it. By default, the cmdlet clears the current content from the clipboard and sets it to the new content. When this parameter is specified, the cmdlet appends the new content after a newline to the current content.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsOSC52
When connected to a remote session over SSH, Set-Clipboard
sets the clipboard of the remote
machine, not the local host. When you use this parameter, Set-Clipboard
uses the OSC52 ANSI escape
sequence to set the clipboard of the local machine.
For this feature to work, your terminal application must support the OSC52 ANSI escape sequence. The Windows Terminal supports this feature.
This parameter was added in PowerShell 7.4.
Type: | SwitchParameter |
Aliases: | ToLocalhost |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Returns an object representing the item with which you're working. By default, this cmdlet does not generate any output.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
The string values to be added to the clipboard.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet isn't run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
You can pipe a string containing the content to set to the clipboard to this cmdlet.
Outputs
None
This cmdlet returns no output.
Notes
PowerShell includes the following aliases for Set-Clipboard
:
- All platforms:
scb
Support for this cmdlet on macOS was added in the PowerShell 7.0.0 release.