Programming Field

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

プロンプトでの入力方法を拡張します。

[MS-DOS, Windows 95/98/Me] doskey は「doskey.com」アプリケーションです。

[Windows NT 系] doskey は「doskey.exe」アプリケーションです。

構文

doskey [/BUFSIZE:<size>] [/ECHO:on|off] [/EXENAME=<exe-file>] [/FILE:<file>] [/HISTORY]
  [/INSERT | /OVERSTRIKE] [/KEYSIZE:<size>] [/LINE:<size>] [/LISTSIZE=<size>]
  [/MACROS[:ALL | :<exe-file>]] [/MACROFILE=<file>] [/REINSTALL] [<macro-name>=<value>]

※ 「:」は「=」で代用できる場合がありますが、「=」は「:」で代用できません。

オプション一覧

/BUFSIZE:<size> [MS-DOS, Windows 95/98/Me] マクロとコマンド履歴を保持するバッファのサイズを設定します。(動作に影響が無い?) 設定には /REINSTALL スイッチが必要です。/BUFSIZE は /B と省略できます。
/ECHO:on|off [Windows 95/98/Me] マクロ実行時に、実際に実行するコマンドを表示するかどうかを指定します。echo コマンド(echo on/echo off)と同じ感覚です。
/EXENAME=<exe-file>

[Windows NT 系] 実行可能ファイルを <exe-file> に指定します。これを指定してマクロを設定すると、その実行可能ファイルでのコマンド入力でのみ、その設定したマクロが使用できるようになります。

/EXENAME を指定して /MACROS を行うか、/MACROS:<exe-file> を行うことで、<exe-file> で使用できるマクロを一覧表示することが出来ます。

/FILE:<file>、/MACROFILE=<file> マクロを定義しているファイルを読み込みます。Windows 95/98/Me では /FILE が、Windows NT 系では /MACROFILE が使用できます。
/HISTORY Doskey が保持しているコマンド履歴を表示します。
/INSERT | /OVERSTRIKE

/INSERT を指定すると、コマンド入力が挿入モードになります(Windows NT 系の既定)。/OVERSTRIKE を指定すると、コマンドの入力が上書きモードになります(MS-DOS、Windows 9x の既定)。

[Windows 95/98/Me] /INSERT は /I、/OVERSTRIKE は /O と省略可能です。

/KEYSIZE:<size> [Windows 95/98/Me] キーボードバッファのサイズを指定します(既定は15; 詳細は不明)。設定には /REINSTALL スイッチが必要です。/KEYSIZE は /K と省略できます。
/LINE:<size> [Windows 95/98/Me] 行編集バッファのサイズを指定します。この値はコマンド一行に入力できる最大のバイト数になります(既定は128)。設定には /REINSTALL スイッチが必要です。/LINE は /L と省略できます。
/LISTSIZE=<size> [Windows NT 系] コマンド入力の履歴を保持する数を指定します(既定は50)。以前より小さい値を設定すると、オーバーした履歴は削除されます。
/MACROS

現在定義しているマクロの一覧を表示します。

[Windows NT 系] 実行可能ファイルごとにマクロを設定している場合、それは表示されません。

/MACROS:ALL [Windows NT 系] 実行可能ファイルごとに設定しているマクロも含めて、すべてのマクロを表示します。
/MACROS:<exe-file> [Windows NT 系] 実行可能ファイル <exe-file> に設定しているマクロを表示します。/EXENAME を指定して /MACROS を呼び出すのと同じ動作です。
/REINSTALL

Doskey を読み込み直します。この際、コマンド履歴もクリアされます。MS-DOS、Windows 95/98/Me の場合は設定していたマクロもクリアされますが、Windows NT 系の場合マクロはクリアされません。

[Windows 95/98/Me] /REINSTALL は /R と省略可能です。

<macro-name>=[<value>]

マクロ(エイリアス)として <macro-name><value> と定義します。これにより、<macro-name> と入力することで <value> と同じ効果を得ることが出来るようになります。

<value> はスペースや「/」も指定可能なため、このコマンドは必ず最後におく必要があります。

<value> を省略した場合(= で入力を止めた場合)は、<macro-name> で指定したマクロを削除します。

解説

Doskey について

Doskey使用例

Doskey はプロンプトに便利な機能を追加します。例えば、何も引数を指定せずに「doskey」を実行すると、それ以降入力したコマンドが保存され、上下キーを使って参照・再実行することが出来ます。

Windows NT 系でのコマンドプロンプトでは、Doskey は既に読み込まれている状態になるため、プロンプトを開くたびに Doskey を実行する必要はありません。

/INSERT を指定して設定される Doskey の挿入モードでは、←→キーでカーソルを移動して文字を入力すると、その位置に文字を挿入することが出来ます。/OVERSTRIKE の上書きモードでは、カーソル位置から文字が上書きされます。Insert キーを押すと、スイッチを指定しなくてもモードの切り替えが行えますが、その場合は一度コマンドを入力すると元に戻ります。

/FILE や /MACROFILE で指定するマクロ定義ファイルは、「a=b」などの内容が1行ずつ書き込まれているテキスト形式のファイルです。Doskey で現在定義しているマクロを出力するには、以下のをご覧ください。

マクロで使用できる特殊文字

Doskey でマクロを定義する際、以下の文字を使用することができます。(大文字・小文字は区別されません。)

文字 意味
$T コマンドセパレーターです。この文字を区切り文字として複数のコマンドを割り当てることができます。(例: echo A$Techo B)
$1 から $9 マクロの引数です。「$」と数字の1から9($1, $2, ..., $9)を使うことで、マクロを使用する際に追加指定されたパラメーターに置き換わります(1番目のパラメーターが $1 に入ります)。
$* マクロの引数すべてに展開します。
$G 出力リダイレクトです。コマンドの出力をファイルやデバイスに書き込みたい場合に使います。
$G$G 追加出力リダイレクトです。コマンドの出力をファイルやデバイスに追加書き込みしたい場合に使います。
$L 入力リダイレクトです。コマンドの入力をファイルやデバイスから得たい場合に使います。
$B パイプです。コマンドの出力を別のコマンドの入力にしたい場合に使います。

Doskey が提供するショートカット

Doskey が読み込まれている状態では、以下のショートカットが利用できるようになります。([Windows NT 系] 最初からこれらのコマンドが使用できます。)

キー 効果
↑↓ コマンド入力の履歴を参照します。参照すると、そのコマンドが既に入力されている状態になります。
Esc 現在入力しているコマンドを消去します。(※ doskey が組み込まれていないと、Esc を押しても入力中の文字列は消去できません。)
F7 今まで入力したコマンドの履歴を表示します。
F8 コマンド入力の履歴を参照します。F8 を押す前に何か入力していると、その入力している内容と最初の文字が一致するもののみ参照されます(前方一致)。(例:「di」と入力していると、「dir /w」「dir /a:d」などを参照できますが、「del *.*」は参照されません。)
F9 F7 で表示されるコマンド履歴を数字で選択することが出来るようになります。F9 を押すと数字の入力を促されるので、対応する数字キーを押します。
Alt+F7 コマンド履歴を消去します。
Alt+F10 定義しているマクロをすべて消去します。

サンプル1

doskey /insert

現在のプロンプトに doskey を挿入モードで読み込みます。(DOS の起動中に指定すると、すべてのプロンプトに影響を及ぼします。)

サンプル2

doskey delall=del *.*

「delall」というマクロを定義します。これ以降、「delall」とプロンプトで入力すると、「del *.*」が実行されるようになります。

サンプル3

doskey /macros > macros.txt

現在定義しているマクロを「macros.txt」に保存します。これを読み込むには以下の例を使用します。

サンプル4

doskey /file:macros.txt

[Windows 95/98/Me] 「macros.txt」からマクロを読み込みます。

サンプル5

doskey /macrofile=macros.txt

[Windows NT 系] 「macros.txt」からマクロを読み込みます。

サンプル6

doskey /exename=ftp.exe mylogin=open ftp.myserver.net

[Windows NT 系] コマンドライン FTP ツールの「ftp.exe」(Windows に標準で付属) において「mylogin」というマクロを使用できるようにします。これ以降、ftp.exe で「mylogin」と入力すると、「open ftp.myserver.net」、すなわち ftp.myserver.net への接続を行うことが出来ます。