CMD ファイル形式とは?
.cmd ファイルは、Windowsコマンドプロンプトのインタープリタである cmd.exe によって実行されるプレーンテキストの Windows NTコマンドスクリプト です。これは古い .BAT バッチファイル形式とほぼ同一ですが、動作上の重要な違いが1つあります。それは、.cmd ファイルは常に コマンド拡張機能が有効 な状態で実行される点です。これにより、レジストリ設定を変更することなく、高度な IF/FOR 構文、CALL :label サブルーチン、%~nx0 パス展開、および信頼性の高い ERRORLEVEL 処理にアクセスできます。
1993年にWindows NT 3.1とともに新しい cmd.exe インタープリタと併せて導入されたこの .cmd 拡張子は、COMMAND.COM で動作していた従来のDOS用 .bat ファイルと、NTネイティブのスクリプトを区別するためのMicrosoftの手法でした。現在、Windows 11に至るまで両方の拡張子が完全にサポートされています。
.cmd スクリプトは、連続する cmd.exe コマンド、ラベル(:name)、制御フローキーワード(GOTO、CALL、IF、FOR)、および変数展開(%VAR%)で構成されます。SETLOCAL/ENDLOCAL ブロックは、環境変数の変更をスクリプトのスコープ内に限定します。マジックバイトは存在しません。ファイルはプレーンテキストであり、通常は ANSI/Windows-1252 エンコーディングで保存されます。UTF-8も機能しますが、先頭にバイトオーダーマーク(BOM)があると、最初のコマンドラインが正しく動作しない場合があります。
.cmd ファイルは 実行可能ファイル です。ダブルクリックすると、すべてのコマンドが即座に実行されます。信頼できない .cmd ファイルを実行する前には、必ずテキストエディタで内容を確認してください。現代のWindowsオートメーションには PowerShellスクリプト (.ps1) が推奨されますが、レガシーシステムや軽量なタスクの自動化には依然として .cmd が不可欠です。
セキュリティと安全性
リスク: HIGH.cmd ファイルは «実行可能» です。ダブルクリックすると、ユーザー権限ですべてのコマンドが即座に実行されます。ファイルの削除や暗号化、システム設定の変更、追加のマルウェアのダウンロード、セキュリティツールの無効化、データの流出などを行う可能性があります。これは標準的なマルウェア配布形式であり、«修正プログラム»、«インストーラー»、«オプティマイザー»、«アクティベーションクラック» などに偽装されることが多く、メールの添付ファイルや偽のサポートページからのダウンロードとして一般的です。安全な取り扱い:信頼できない .cmd ファイルを絶対にダブルクリックしないでください。検査するには、右クリック > «その他のオプションを表示» > «編集» を選択します(実行せずにNotepadで開きます)。以下のレッドフラグに注意してください:powershell/curl/bitsadmin/certutil を呼び出してファイルをダウンロードするコマンド、Base64エンコードされた文字列、Windows Defender や UAC を無効化しようとする試み、AppData/system フォルダへの書き込み、またはキャレット(^)エスケープによる長い難読化文字列。疑わしい場合は、ファイルを VirusTotal にアップロードし(テキストファイルなのでアップロードは安全です)、仮想マシンやサンドボックス内でのみ実行してください。注意:有名なソフトウェア(Gradle、Maven、Node.js ラッパーなど)の .cmd ファイルは安全ですが、サードパーティのダウンロードではなく、必ず公式の配布元から入手してください。
形式の詳細
概要CMD ファイルを開くプログラム
cmd.exe コマンドを実行することは不可能です。検査のために開き、実行はWindows(またはWindows仮想マシン内)で行ってください。 cmd.exe のバッチ構文はネイティブでは実行できません。ここで検査し、Windowsで実行してください(Wineのcmdは単純なスクリプトを不完全に処理します)。 技術的詳細
詳細仕様| エンコーディング | テキスト - 通常は ANSI/Windows-1252 または ASCII。UTF-8 もサポートされますが、先頭の BOM が最初のコマンドを壊す可能性があります |
| コンテナ | プレーンテキスト |
| 暗号化 | なし(プレーンテキスト。PowerShell の .ps1 スクリプトとは異なり、組み込みのコード署名はありません) |
| 一般的なサイズ | 100バイト - 100 KB |
| 構造 | 連続する cmd.exe コマンド、ラベル(:name)、IF/FOR/GOTO/CALL 制御フロー、%VAR% 展開、SETLOCAL/ENDLOCAL ブロック |
| コマンド拡張機能 | .cmd ファイルでは常に有効(レジストリ設定の EnableExtensions に依存する .bat とは異なります) |
| インタープリタ | cmd.exe(DOS用 .bat ファイルで使用されるレガシーな COMMAND.COM ではありません) |
| マジックバイト | なし - プレーンテキスト。多くのファイルは @echo off、REM、または ::(コメント行)で始まります |
| 関連OS | Windows NT 3.1 以降のすべてのバージョン(Windows 11 を含む) |
| 後継形式 | 現代の自動化には PowerShell (.ps1)。.cmd と .bat は Windows 11 時点でも完全にサポートされています |
| 実行動作 | ダブルクリックするとすべてのコマンドが即座に実行されます。信頼できないファイルを実行する前には必ずテキストエディタで検査してください |
| リリース日 | 1993 with Windows NT 3.1 / OS/2 as the NT-era sibling of the DOS .bat extension |
| 最新バージョン | No versioned spec; behavior defined by the cmd.exe of each Windows release (Windows 11 as of 2026) |
| 仕様書 | learn.microsoft.com |
CMD の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。CMD ファイルについて最初の質問をしてみましょう。
よくある質問
.cmdファイルを開いても安全ですか?
.cmdと.batの違いは何ですか?
.cmdファイルを実行するにはどうすればよいですか?
実行せずに.cmdファイルを編集するにはどうすればよいですか?
.cmdファイルを.exeに変換するにはどうすればよいですか?
なぜソフトウェアのインストールフォルダに.cmdファイルがあるのですか?
.cmdファイルはMacやLinuxで動作しますか?
cmd.exe 構文を使用します。どのOSでもテキストとして読み取ることは可能ですが、実行するにはWindows(またはWindowsの仮想マシン/エミュレータ)が必要です。