Windowsでコマンド出力をクリップボードにコピーしたい場合、「clip.exe」を使用すると便利です。
Windows 10やWindows 11では標準状態で使用することができ、コマンドプロンプトやPowerShell、WSLなどから呼び出すことができます。
例えばDIR | CLIP
で、ファイル一覧をクリップボードにコピーしたり、CLIP < README.TXT
でREADME.TXTの内容をクリップボードにコピーすることができます。
CLIP /?
を実行すると、以下のような説明が表示されます。
CLIP 説明: コマンド ライン ツールの出力を Windows クリップボードにリダイレクトします。 その出力されたテキストをほかのプログラムに貼り付けることができます。 パラメーター一覧: /? このヘルプを表示します。 例: DIR | CLIP 現在のディレクトリ一覧のコピーを Windows クリップボード に貼り付けます。 CLIP < README.TXT readme.txt ファイルのテキストのコピーを Windows クリップボードに貼り付けます。
以下使用方法を説明します。
使用法は簡単(だけど文字化け注意)
CLIPの使用法は簡単です。コマンドプロンプト、PowerShell、WSLのプロンプトなどから、CLIPにパイプやリダイレクトで情報を入力すると、その内容がWindowsのクリップボードにコピーされます。
実行した後は、メモ帳などにCtrl+Vで貼り付けることができますが、文字コードがShift_JIS(cp932)でないと日本語部分が文字化けします。
▲上の画面では、コマンドプロンプトのコードページは932(Shift_JIS)なので日本語が正しく扱えていますが、PowerShellは65001(UTF-8)であるため文字化けしています。
UTF-8環境から文字化けせずにコピーするには文字コード変換ツールのiconvやnkfを使って、文字コードをShift_JISに変換します。
echo "こんにちは" | iconv -t cp932 | clip.exe
さらにこの問題を根本的に解決したオープンソースツールuclipを使う方法もあります。
まとめ
Windows環境でコマンド出力をコピーしたい場合、clip.exeを使用します。Macユーザーの方は、pbcopyのようなものと考えると分かりやすいかもしれません。なおpbpaste(クリップボードからの貼り付け)に該当する標準ツールは存在しないようです。