Programming Field

DOS コマンド一覧

Clip

[Windows Vista以降] プログラムが入力として受け取ったデータをWindowsのクリップボードにコピーします。

構文

clip[.exe] < <file-name>
<any-command> | clip[.exe]
< <file-name>
入力リダイレクトを利用して <file-name> で指定したファイル内のデータを入力とします。
<any-command> |
パイプを利用し、<any-command> で指定した任意のコマンドの出力をClipの入力データとします。

解説

コマンドプロンプトでは、メニューから範囲選択を選ぶことで画面に出力されている内容をクリップボードにコピーできますが、出力内容をまとめてClipの入力としてリダイレクトすることで、マウス操作なしにクリップボードにコピーをすることができます。ただし、既に何らかのデータがクリップボードに存在する場合はコピー前に破棄されるため、複数回Clipを呼び出しても最後の呼び出しで与えられた入力のみがクリップボードにコピーされます。

※ Clipが受け取る入力は必ず標準入力(コンソール上のキーボード入力)以外になるようにします。パイプや入力リダイレクションがない状態(=入力が標準入力になる)でClipが実行された場合は使用法を表示するための案内が出力されます。

サンプル1
type CON | clip

キーボードからの入力をクリップボードにコピーします。入力を終えるには空の行で Ctrl+Z のみを入力する必要があるため、コピーしたテキストは必ず末尾に改行文字が入ります。

サンプル2 (バッチファイル)
@echo off
setlocal enableextensions
call :MyProcess C D E > mytemp.dat
clip < mytemp.dat
erase mytemp.dat
exit /b 0

:MyProcess
    if "%1"=="" exit /b 0
    mycheck.exe %1
    shift
    goto MyProcess

[拡張機能] バッチファイル内のラベル「MyProcess」内で実行される一連の出力をクリップボードにコピーします。パイプはバッチファイル内のラベルを呼び出すCallに対して使用することができないため、出力リダイレクト入力リダイレクトを用いて一時ファイル経由でコピーしています。