Programming Field

Print - DOS/コマンドプロンプト コマンド一覧

[MS-DOS、およびWindows NT系/XP以降] テキストデータを印刷します。

構文

print[.exe] [/D:<device>] [/B:<size>] [/U:<num>] [/M:<num>] [/S:<num>]
    [/Q:<size>] [/T] [<file-name> ...] [/C] [/P]

オプション一覧

<file-name> 印刷するファイル名を指定します。複数指定することが出来、ワイルドカードも使用できます。
/D:<device>

印刷に利用するデバイスを指定します。通常<device>にはPRN、LPT1~LPT3COM1~COM4を指定します。

[MS-DOSのみ] このスイッチは最初にPrintを起動するときにのみ指定できます。

[Windows NT系] <device> にファイル名を指定すると、印刷時に送信されるデータがそのファイルに書き込まれます。ただし存在するファイル名を指定することはできません。

/B:<size> [MS-DOSのみ] プリンターバッファ(プリンターに転送する前のバッファー)のサイズを指定します。<size>には512~16384の間の数値(バイト単位)を指定します。この数値を指定しなかった場合は「512」が使用されます。
/U:<num> [MS-DOSのみ] プリンターが利用可能になるまでに待機するクロック時間(18が約1秒に相当)を指定します。この指定した時間内にプリンターが利用可能とならない場合、印刷は開始されません。<num>には1~255の間の数値が指定可能で、既定は「1」です。
/M:<num> [MS-DOSのみ] プリンターが1文字を印刷するのに必要な最長クロック時間を指定します。印字速度が遅い場合エラーメッセージが表示されます。<num>には1~255の間の数値が指定可能で、既定は「2」です。
/S:<num> [MS-DOSのみ] Printプログラムがバックグラウンドで印刷する際に、スケジューリングで回ってきた際に消費するクロック時間を指定します。この値が大きいと並行する他プログラムの実行速度が低下する代わりに印刷速度が向上します。<num>には1~255の間の数値が指定可能で、既定は「8」です。
/Q:<size> [MS-DOSのみ] 印刷待ちのキュー(行列)に入れられるファイルの最大数を指定します。<size>には4~32の間の数値が指定可能で、この数値を指定しなかった場合は「10」が使用されます。
/T [MS-DOSのみ] 印刷待ちのキューからファイルをすべて削除し、印刷処理を終了させます。
/C [MS-DOSのみ] 印刷待ちのキューから該当するファイルを削除します。コマンドライン上で「/C」が指定された直前のファイルと、「/C」から「/P」(存在しない場合は末尾)までの間に指定されているファイルがキューから削除されます。(ただし、「/P」の直前のファイルは「/P」の効果が優先されます。)
/P [MS-DOSのみ] 印刷待ちのキューにファイルを追加します。コマンドライン上で「/P」が指定された直前のファイルと、「/P」から「/C」(存在しない場合は末尾)までの間に指定されているファイルがキューに追加されます。(ただし、「/C」の直前のファイルは「/C」の効果が優先されます。)

解説

コマンドラインからテキストファイルを印刷するのに利用します。ただし、多くのアプリケーションでは独自の「印刷」コマンドがあるため、通常はそれらを利用することになります。Printプログラムでの「印刷」は、指定されたテキストデータをそのままプリンターに送信する「RAW印刷」となるため、プリンターがそのテキストデータを解釈できる必要があります。

Printはテキストデータを印刷する際、末尾に文字コード「0x0C」の文字(Ctrl+L、Form Feed)を追加して出力します。

※ 「テキストデータが直接プリンターに送信される」ということを利用し、出力先のプリンターが解釈できる特別なテキストコマンドをテキストファイルに含めることができます。例として、指定したデバイスがPostScriptを解釈する場合、テキストデータをPostScriptで記述すればそれに対応する印刷結果を得ることができます。

「net use」コマンドでネットワーク上に共有されたプリンターをLPT1~LPT3(場合によってはLPT4以降も)に割り当てることができます。このコマンドでプリンターをデバイスファイルに割り当てることで、プリンターをPrintコマンドでの印刷先に用いることができるようになります。

なお、PRNなどのデバイスファイルを出力先として出力リダイレクトを用いることでもプリンターに直接データを送ることはできますが、出力リダイレクトは同期的にデータが送信されることに対し、Printはバックグラウンドで順次処理を行うため、他の処理や操作をブロックすることなく印刷処理を行うことができます。

※ Printコマンド自身は標準入力を入力元として用いないため、リダイレクトやパイプを用いてPrintにデータを送ることはできません。

[MS-DOSのみ] Printは最初に起動したときにメモリ空間に常駐し、バックグラウンドプロセスとして動作します。このときに「/D」オプションで指定されたデバイスを、Printプログラムが利用する印刷の出力先として利用します。また、「/D」オプションが指定されていない場合はどのデバイスを利用するかを尋ねるプロンプトが表示されます。なお、2回目以降のPrintの実行では、既にPrintプログラムが常駐しているので「/D」「/B」「/U」「/M」「/S」「/Q」の各スイッチを使用することはできません。これらのスイッチで指定できるデバイス・設定を変更したい場合はシステムを再起動する必要があります。

[MS-DOSのみ] テキストファイルを印刷する際、Printはテキストデータ内のタブ文字を空白8文字として出力し、文字コード「0x1A」の文字(Ctrl+Z、EOF文字としてよく使用されます)が見つかった場合はその文字を終了記号として読み取りを終了します。なお、印刷待ちキューに入れられるファイルの文字数は最大64文字です。

[Windows NT系のみ?] タブ文字や文字コード「0x1A」は特に解釈せずそのまま出力します。そのため、Printプログラムは単に末尾にForm Feedを追加しつつファイルの内容をデバイス(ファイル)に送信するようなプログラムになっています。

サンプル1

print /D:COM1

[MS-DOSのみ] 現在のシステムで利用するプリンターのデバイスを「COM1」に設定します。

サンプル2

print myData.ps

ファイル「myData.ps」に含まれるテキストデータを印刷します(MS-DOS版では印刷待ちキューにファイルが追加されます)。出力先デバイスが指定されていないため、MS-DOS版では既にPrintが常駐していればそのときに指定されたデバイス、まだ常駐されていなければ出力先の入力を促すプロンプトが表示されます。Windows版ではPRNに出力されます。