CLIP(クリップボードにコピー)
コマンドの実行結果をメールやチャットに貼り付けたいとき、画面上で範囲選択してコピーするのは手間がかかります。
CLIP コマンドは、標準入力で受け取った内容をクリップボードにコピーするコマンドです。パイプやリダイレクトと組み合わせることで、コマンドの出力やファイルの内容を、マウスを使わずにコピーできます。
基本的な使い方
CLIP は単独では使わず、他のコマンドの出力を**パイプ(|)**でつないで使います。
コマンド | CLIP
使用例
ipconfig | clip
画面には何も表示されませんが、ipconfig の出力結果がクリップボードにコピーされます。メモ帳などで Ctrl + V を押すと貼り付けられます。
CLIP は成功しても何もメッセージを表示しません。コピーできたか不安なときは、メモ帳に貼り付けて確認してください。
CLIP を実行すると、それまでクリップボードにあった内容は置き換えられます。元に戻すことはできません。
ファイルの内容をコピーする
テキストファイルの内容は、リダイレクト(<)で CLIP に渡せます。
clip < memo.txt
type コマンドとパイプを組み合わせても同じ結果になります。
type memo.txt | clip
どちらも、ファイルを開かずに全文をクリップボードへコピーできます。
よく使う例
カレントディレクトリのパスをコピーする
cd | clip
引数なしの cd は現在のフォルダーのパスを表示するので、その結果がコピーされます。
ファイル名の一覧をコピーする
dir /b | clip
/b を付けると、ファイル名だけが 1 行ずつコピーされます。
実行ファイルの場所をコピーする
where python | clip
短い文字列をコピーする
echo Hello| clip
末尾の改行に注意
echo の出力には末尾の改行が含まれるため、echo Hello | clip(| の前にスペースあり)でコピーされるのは「Hello」と改行です。貼り付けた後にカーソルが次の行へ移動するのは、このためです。
また、このように | の前にスペースを入れると、そのスペースも文字列に含まれます。気になる場合は、スペースを詰めて echo Hello| clip と書きます。
改行も含めずに文字列だけをコピーしたいときは、set /p を使う方法があります。
<nul set /p "=Hello" | clip
<nul は何も入力しないための指定で、set /p が表示した文字列だけが CLIP に渡されます。
クリップボードを空にする
何も出力しないものを CLIP に渡すと、クリップボードを空にできます。
clip < nul
パスワードなどを貼り付けた後に、クリップボードに残さないようにしたいときに便利です。
文字化けしたときは
CLIP は、コマンドプロンプトの現在のコードページで文字を解釈します。UTF-8 で保存されたファイルをコピーして文字化けするときは、先にコードページを変更すると改善することがあります(日本語環境の既定は 932 です)。
chcp 65001
clip < memo.txt
コードページの変更は、そのコマンドプロンプトを閉じるまで有効です。元に戻すには chcp 932 を実行してください。詳しくは文字コードの記事を参照してください。
バッチファイルでの活用例
実行した結果をクリップボードに入れておき、あとで貼り付ける使い方です。
@echo off
ipconfig | findstr /C:"IPv4" | clip
echo IPv4 アドレスの行をクリップボードにコピーしました。
pause
CLIP は貼り付ける側のコマンドではありません。クリップボードの内容をコマンドプロンプトで取り出したい場合は、PowerShell の Get-Clipboard を使い、powershell -command "Get-Clipboard" のように呼び出します。
まとめ
| 操作 | コマンド |
|---|---|
| コマンドの出力をコピー | コマンド | clip |
| ファイルの内容をコピー | clip < ファイル名 |
| 改行なしで文字列をコピー | <nul set /p "=文字列" | clip |
| クリップボードを空にする | clip < nul |