PowerShellでコードを書く際、最後に考えることは
Windowsのクリップボードでしょう。おそらく私たちは皆、GUIを介してクリップボードからコピーしたり貼り付けたりするためのCtrl-CとCtrl-Vのキーボードショートカットを知っていると思いますが、PowerShellスクリプトではあまり役に立ちません。しかし、PowerShellにはクリップボードへのコピー機能があることを知っていましたか?
この記事では、PowerShellのコピーと貼り付けの機能を取得するための方法を紹介し、バージョン5以降でPowerShellが提供するコマンドレットについて紹介します。
PowerShell v5以前では、クリップボードへのコピーはclip.exeアプリケーションを使用するしかありませんでした。
古いスクールのclip.exe
このアプリケーションは長い間使われており、うまく動作していました。テキストをclip.exeにパイプすることで、テキストをクリップボードにコピーすることができました。これは機能していましたが、各エントリの後に改行が追加されるといつも面倒でした。

それだけでなく、クリップボードから情報を取得する簡単な方法がありませんでした。クリップボードに内容がある場合、手動でコンテンツを貼り付ける必要がありました。ネイティブのクリップボードコマンドを使用すると、これはもう必要ありません!
今では、この問題をより良く解決する2つのコマンドレット、Get-Clipboard
とSet-Clipboard
があります。
Set-Clipboard Powershellコマンド
Set-Clipboard
は、clip.exeを置き換えますが、同じように動作します。これにより、出力をclipにパイプする代わりに、Set-Clipboard
を使用することができます。これを行うと、コンテンツをどこかに貼り付ける際に、末尾のキャリッジリターンがなくなったことに気付くでしょう。
クリップボードには、現在文字列Helloのみが含まれています。
Set-Clipboard
のもう1つの便利な機能は、Append
パラメータです。従来、クリップボードには1つのアイテムしか格納できませんでした。しかし、Set-Clipboard
のAppend
パラメータを使用することで、前のアイテムを削除せずに無制限のアイテムを追加することができます。
Get-Clipboardパラメータ
Set-Clipboard
を使用してコンテンツをクリップボードにコピーしなくても、単純な文字列以外のいくつかの異なるタイプを理解するためにGet-Clipboard
を使用することができます。たとえば、ファイルエクスプローラーからファイルのリストをコピーして、このリストをPowerShellコンソールに取得したい場合は、Get-Clipboard
でFormat
パラメータとFileDropList
の値を使用します。
クリップボードのデータのタイプがファイルのリストであることを理解できるでしょう。また、画像やその他のエンティティでも同じことができます。
他のアプリケーションから画像をコピーし、-Format Image
を使用して画像のさまざまなプロパティを取得するために Get-Clipboard
を使用します。
PowerShell Core でのクリップボード操作
残念ながら、PowerShell Core(v6以上)では Get-Clipboard
と Set-Clipboard
のコマンドは利用できませんが、WindowsCompatibility モジュールを使用することでそれらを利用することができます。WindowsCompatibility モジュールは、PowerShell Core 内で Windows PowerShell のコマンドレットを使用することができるようにします。
WindowsCompatibility モジュールをインストールしたら、Invoke-WinCommand
を実行し、Get-Clipboard
と Set-Clipboard
の参照を内部にラップします。
これにより、Windows PowerShell と同様にクリップボードの読み取りと書き込みができることがわかります。
概要
最近では、PowerShell でクリップボードをより多く活用することができます。PowerShell のクリップボードへのコピーは、Get-Clipboard
と Set-Clipboard
を使用することで実現されました。これらのコマンドレットを使用すると、PowerShell を使用してクリップボードにコピーしたり、クリップボードからのインテリジェントな貼り付けも行えます。
コマンドレットの詳細なヘルプについては、以下を確認してください:
これにより、試すことができるさまざまなパラメータが表示されます。
Source:
https://adamtheautomator.com/powershell-copy-to-clipboard/