DOSKEY(マクロ・エイリアス)

にメンテナンス済み

cd /d C:\Users\user\Documents\Projects や dir /a /o:-d のように、長いコマンドを何度も入力するのは手間がかかります。

DOSKEY コマンドを使うと、よく使うコマンドに短い名前を付けて呼び出せます。この仕組みをマクロ(他のシェルでいうエイリアス)と呼びます。

基本的な使い方

DOSKEY マクロ名=コマンド

使用例

ls と入力すると dir が実行されるマクロを作ります。

doskey ls=dir $*
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>doskey ls=dir $*

登録後に ls と入力すると、dir と同じ結果が表示されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>ls
ドライブ C のボリューム ラベルは Windows です
C:\Users\user のディレクトリ
(以下省略)
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

マクロはコマンドの先頭でのみ使える

マクロとして展開されるのは、入力した行の先頭の単語だけです。また、マクロは対話的に入力したときだけ有効で、バッチファイルの中では使えません。

引数を受け取るマクロ

マクロの定義には、入力時の引数を受け取るための特殊な記号を使えます。

記号説明
$1〜$9マクロ名の後ろに入力した 1〜9 番目の引数
$*マクロ名の後ろに入力したすべての引数
$Tコマンドの区切り(& の代わり)。複数のコマンドを連結できる
$Gリダイレクト > の代わり
$Lリダイレクト < の代わり
$Bパイプ | の代わり

>、<、|、& はマクロ定義の中でそのまま書くと、DOSKEY コマンド自体のリダイレクトやパイプ、コマンドの区切りとして先に解釈されてしまいます。マクロの中で使うときは、表の記号に置き換えてください。

すべての引数を渡す($*)

doskey ll=dir /a /o:-d $*

ll C:\Windows と入力すると、dir /a /o:-d C:\Windows として実行されます。dir のオプションについては

を参照してください。

個別の引数を使う($1)

doskey cdd=cd /d $1

cdd D:\Work と入力すると、ドライブをまたいで D:\Work に移動できます。

複数のコマンドを連結する($T)

doskey mkcd=mkdir $1 $T cd $1

mkcd test と入力すると、フォルダ test を作成してから、そのフォルダに移動します。$T で連結したコマンドは、前のコマンドが失敗しても続けて実行されます。

マクロの一覧を表示する

登録済みのマクロは /macros(省略形は /m)で確認できます。

doskey /macros
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>doskey /macros
ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
C:\users\user>

マクロを削除する

マクロを削除するには、= の右側を空にして定義します。

doskey ls=

マクロはウィンドウを閉じると消える

DOSKEY で登録したマクロは、そのコマンドプロンプトのウィンドウ内でのみ有効です。ウィンドウを閉じると消えてしまうため、毎回登録し直す必要があります。

これを避けるには、マクロの定義をファイルに保存し、起動時に読み込ませます。

マクロをファイルに保存する

現在のマクロを /macros の出力としてファイルに書き出せます。リダイレクトについては

を参照してください。

doskey /macros > %USERPROFILE%\macros.doskey

ファイルは、次のように 1 行に 1 マクロを 名前=コマンド の形式で書いたテキストファイルです。メモ帳などで直接編集して構いません。

ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
チェック

/macros の出力は、日本語版 Windows では Shift_JIS 系(コードページ 932)で保存されます。メモ帳などで編集して保存し直す場合は、文字コードを ANSI にするか、BOM なしの UTF-8 にしてください。文字コードについては

を参照してください。

ファイルからマクロを読み込む

/macrofile オプションでファイルを指定すると、まとめて登録できます。

doskey /macrofile=%USERPROFILE%\macros.doskey

起動時に自動で読み込む

コマンドプロンプトを開くたびに自動で読み込ませたい場合は、ショートカットのリンク先を次のように変更する方法が手軽です。

%windir%\system32\cmd.exe /k doskey /macrofile=C:\Users\user\macros.doskey

user の部分はご自身のユーザー名に置き換えてください。/k は、指定したコマンドを実行した後もウィンドウを閉じずに残すオプションです。

レジストリの AutoRun は慎重に

レジストリの HKCU\Software\Microsoft\Command Processor にある AutoRun 値にコマンドを設定すると、すべてのコマンドプロンプト起動時に自動実行されます。ただし、バッチファイルなどから起動された cmd にも影響するため、予期しない動作の原因になることがあります。設定する場合は、元に戻せるよう、変更前の値を控えておいてください。まずは上記のショートカットを使う方法をおすすめします。

コマンド履歴の管理

DOSKEY はマクロのほか、コマンド履歴も管理しています。履歴を表示する /history については

で紹介しています。

オプション説明
/history保存されているコマンド履歴を表示する
/listsize=n保存するコマンド履歴の件数を n 件にする
/macrosマクロを一覧表示する
/macros:all起動中のすべての実行ファイル(cmd 以外を含む)のマクロを表示
/macrofile=ファイルファイルからマクロを読み込む
/reinstallDOSKEY の新しいインスタンスを起動し、履歴バッファを消去する
doskey /listsize=100

実践例:よく使う操作をまとめて登録する

開発作業でよく使うマクロをまとめた例です。

ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
which=where $*
ip=ipconfig $*

which で

を、ip で を短く呼び出せるようにしています。

PowerShell では使えない

DOSKEY のマクロは、コマンドプロンプト(cmd.exe)の機能です。PowerShell では Set-Alias や関数など、別の仕組みを使います。

まとめ

操作コマンド
マクロを登録doskey 名前=コマンド
すべての引数を渡す$*
複数のコマンドを連結$T
マクロを一覧表示doskey /macros
マクロを削除doskey 名前=
ファイルに保存doskey /macros > ファイル
ファイルから読み込むdoskey /macrofile=ファイル

関連記事

練習問題

練習問題

DOSKEY で登録したマクロの一覧を表示する方法として正しいものはどれですか?

回答がサーバーに送信されることはありません
練習問題

DOSKEY マクロの定義に書く $* は、何を表しますか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #DOSKEY #マクロ #エイリアス #コマンド