コマンドラインで「md」コマンドの全解説:オプションから使用例まで

Windowsのmdは、コマンドプロンプトでフォルダーを作成するためのコマンドで、mkdirと同じ働きをします。基本形は「md 作成するパス」です。親フォルダーが存在しない階層もまとめて作れます。一方、PowerShellで入力したmdは同じ文字でもPowerShell側のコマンド解決を通るため、cmd.exeの組み込みコマンドと完全に同一とは限りません。この記事では、作成先を先に確認し、ユーザーのDocuments配下に検証用フォルダーを作る安全な例で、引用符、相対パス、エラー判定、PowerShellとの違いまで整理します。

目次

mdコマンドの構文と役割

md [drive:]path
mkdir [drive:]path

Microsoftの公式構文では、mdとmkdirは同じページで説明されています。pathに作成するディレクトリ名を指定します。コマンドプロンプトでコマンド拡張機能が有効な通常の環境では、途中の階層が存在しなくても一度に作成できます。たとえばDocumentsの下に検証用の親、子、ログという階層を指定すれば、必要な親も順に作られます。

mdには、一般的なツールのような多数のスイッチ一覧はありません。公式ページが示す主なスイッチはヘルプ表示です。「/sでサブフォルダーも作る」「/pが必要」といった別OSや別コマンドの説明を混ぜないでください。作成先、名前、シェル、権限が動作を決めます。まずcdで現在位置を、echo %CD%で完全な現在パスを確認してから実行すると、意図しない場所に同名フォルダーを作る事故を防げます。

絶対パスで検証用フォルダーを作る

echo %CD%
md "%USERPROFILE%\Documents\md-test\reports\2026"

環境変数%USERPROFILE%を使うと、例を実行したユーザーのプロファイル配下を参照できます。パス全体を二重引用符で囲むのは、途中に空白がある場合でも一つの引数として渡すためです。引用符は名前の一部にはなりません。作成後はエクスプローラーまたはdir "%USERPROFILE%\Documents\md-test"で結果を確認します。既存の業務フォルダーや共有ルートで試さず、自分のDocuments配下に新しい検証名を用意してください。

同じパスをもう一度指定したときのメッセージや終了コードは、Windowsの版や呼び出し方によって扱いが異なる場合があります。スクリプトでは画面メッセージだけに依存せず、実行後に対象がディレクトリとして存在するかを確認します。ファイルと同じ名前でディレクトリを作ろうとした場合、アクセス権がない場所を指定した場合、無効な名前を含む場合は失敗します。失敗時に別の場所へ勝手に作り直すのではなく、指定パスと権限を見直します。

相対パスと現在のフォルダー

cd /d "%USERPROFILE%\Documents"
md "md-test\daily"

相対パスは現在のフォルダーを基準にします。短く書ける反面、タスクスケジューラ、ショートカット、別のバッチから呼ぶと現在位置が変わり、予想外の場所へ作成されることがあります。対話的な練習ではcd /dでドライブを含めて移動し、表示された場所を確認します。自動処理では、基準が明確な絶対パスを組み立てるほうが安全です。ネットワーク共有を扱う場合も、共有名、接続権限、オフライン状態を先に確認します。

空白・日本語・末尾の区切りを扱う

md "%USERPROFILE%\Documents\md-test\月次 レポート"

Windowsは日本語を含むフォルダー名を扱えますが、利用するアプリ、古いスクリプト、文字コード、クラウド同期サービスが同じ名前を正しく処理できるかは別問題です。業務自動化では、読みやすさだけでなく移行先や連携先の制約も確認します。空白がなくてもパスを一貫して引用符で囲む運用にすると、後で名前が変わったときの不具合を減らせます。末尾の円記号の有無を混在させず、ログには実際に解決された完全パスを残します。

使えない文字と予約名

Windowsのファイル名には、< > : " / \ | ? *など使用できない文字があります。さらにCON、PRN、AUX、NUL、COM1、LPT1など予約された名前は、拡張子を付けても通常のフォルダー名には使えません。末尾の空白やピリオドもWin32の一般的な名前解決で正規化されるため避けます。ユーザー入力から名前を作る処理では、単にエラーを無視せず、許可する文字と長さを決めて検証します。

長いパスの扱いは、Windowsの設定とアプリ側の対応の両方に依存します。OSの長いパス設定を有効にしただけで、すべてのプログラムが長い名前を扱えるわけではありません。深い階層を自動生成する設計では、ルートを短くし、フォルダー名に日時や説明を詰め込みすぎず、最終的な完全パス長を監視します。mdが成功しても、その後に使うバックアップ製品や同期ツールが失敗する可能性まで考慮します。

cmd.exeとPowerShellを区別する

コマンドプロンプトではmdはcmd.exeの組み込みコマンドです。PowerShellでは、入力された名前をエイリアス、関数、コマンドレット、外部コマンドなどの規則で解決します。環境やプロファイルによって同名の定義が追加される可能性があるため、Get-Command md -Allで実体を確認します。PowerShellの明示的な書き方はNew-Item -ItemType Directory -Path ...です。

Get-Command md -All
New-Item -ItemType Directory -Path "$HOME\Documents\md-test\powershell"

PowerShellでは$HOMEなど変数の展開方法、引用符、エラー処理がcmd.exeと異なります。cmd用の%USERPROFILE%をそのままPowerShellへ貼り付けたり、PowerShell用の$HOMEをバッチファイルへ貼ったりしないでください。手順書には「コマンドプロンプトで実行」「PowerShellで実行」を明記し、コードブロックを分けます。複数端末へ配る処理ではエイリアスを避け、正式なコマンド名を使うと読み手の誤解を減らせます。

複数フォルダーを作成する考え方

cmd.exeでは一つのmd行に複数の名前を並べられる構成もありますが、空白を含む名前や途中失敗が混ざると結果を読み違えやすくなります。重要な処理では一つずつ完全パスを指定し、各作成後に存在確認とログ記録を行うほうが監査しやすくなります。日付ごとのフォルダーを作る場合、ロケール依存の%DATE%をそのまま名前にせず、年・月・日の形式を決め、禁止文字が入らない値を生成します。

バッチ処理で成功を確認する

md "%USERPROFILE%\Documents\md-test\checked"
if errorlevel 1 echo Folder creation failed

終了コードを確認する場合は、mdの直後に判定します。間に別のコマンドを挟むと、そのコマンドの終了コードへ置き換わります。ただし終了コードだけで「意図したディレクトリがある」ことを保証せず、存在と種類も確認します。作成先が同名ファイルだった、別ユーザーの権限で動いた、ネットワークが切れたなど、原因を特定できる情報をログへ残します。パスに機密情報を含む場合は、公開ログや問い合わせ文へそのまま貼り付けません。

「アクセスが拒否されました」と出る場合

WindowsやProgram Filesのような保護された場所、他ユーザーのプロファイル、アクセス権のない共有では作成できません。管理者として実行する前に、その場所へ作る必要が本当にあるかを確認します。アプリのデータならユーザーのDocumentsや組織が指定したデータ領域を使うほうが適切な場合があります。権限を一括変更したり所有権を取得したりせず、管理者へ作成目的、完全パス、必要な利用者、保持期間を伝えて承認を得ます。

安全に練習し、不要になったら確認して整理する

この記事の例はDocuments\md-testの下だけに作成します。整理するときは、エクスプローラーでその完全パスを開き、業務ファイルが入っていない空の検証用フォルダーであることを確認してから、通常の削除操作を行います。再帰削除、ワイルドカード、ルートに近いパスを使う削除コマンドは練習に不要です。フォルダー作成は簡単でも、削除は復元できない場合があるため、作成手順と同じ行に自動削除を組み込みません。

要点のまとめ

  • mdとmkdirはcmd.exeでディレクトリを作成する同等のコマンドです。
  • 作成前に現在位置を確認し、空白を含む可能性があるパスは二重引用符で囲みます。
  • cmd.exeとPowerShellでは名前解決、変数、エラー処理が違うため、実行するシェルを明記します。
  • 予約名、禁止文字、長いパス、権限、ネットワーク状態を確認します。
  • スクリプトでは終了コードだけでなく、作成された対象の完全パスと種類を確認します。

公式情報・参考資料

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次