Cmd.exe
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、コマンドラインインタプリタについて説明しています。コマンド入力待ち状態であることを表す記号については「コマンドプロンプト」をご覧ください。
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Cmd.exe" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2019年10月)

cmd.exe
Microsoft Windows コンポーネント
詳細
標準提供Windows NT 3.1 以降
Windows CE
OS/2
関連コンポーネント
COMMAND.COM
Windows PowerShell

cmd.exeはOS/2NT系WindowsWindows CEに搭載されているコマンドラインインタプリタである。英語版のショートカットには「Command Prompt」、日本語版のショートカットには「コマンド プロンプト」という名称が付けられている[1]MS-DOSからWindows 9xに渡って用いられたCOMMAND.COM(およびDOSプロンプト)と類似の機能を持つ。Win32コンソールAPIを利用して実装されている。

64ビット版Windowsでは、64ビットのcmd.exeと、WOW64で実行される32ビットのcmd.exeがインストールされている。Windows 9x系のDOSプロンプトがMS-DOS仮想マシン上で動く16bitプログラムなのに対して、cmd.exeは32bitもしくは64bitで動作するコンソールプログラムである。

cmd.exeはCOMMAND.COMと比べ、相当に機能向上が図られている。一旦はエスケープシーケンスの機能が削られたが、Windows 10 1607で復活[2]し、VT100互換のエスケープシーケンスが使用できるようになった。
新機能

WindowsにおいてコマンドプロンプトはCOMMAND.COMとある程度の互換性を持つが、次の拡張が施されている。

COMMAND.COMでの「
コマンドまたはファイル名が違います。」よりも詳細なメッセージを出力するようになった。OS/2ではシステムで選択された言語でエラーが表示され、そのメッセージは「システムメッセージファイル」より取得される。

矢印キーを使ったコマンド履歴のスクロールをサポート。この機能はCOMMAND.COMでは外部コマンドのDOSKEYでサポートされていた。

ファイルやフォルダーパスのコマンドライン補完をサポート(既定では? Tabキーに割り当てられている)

「^」をエスケープ文字として扱う。つまり、次のコマンドプロンプトで特別な意味を持つ文字の前にキャレットを付けることで、リテラルとして扱うことができる。(例:<, >, *, ?, |)

バッチ処理において変数の遅延展開をサポート(Windows 2000以降)

また、内部コマンドが次のように改善されている。

DelTreeコマンド(ディレクトリとそれ以下のファイル・ディレクトリを削除)はRDコマンドに/Sスイッチとして統合。

SetLocalコマンドやEndLocalコマンドで環境のスコープを限定。例えば、SetLocalコマンド後にバッチファイルなどにより変更された環境変数は、EndLocalコマンドを実行するとSetLocalコマンド実行前の状態に復元される。

Callコマンドでバッチファイル内のサブルーチンの呼び出しをサポートした。COMMAND.COMでは外部バッチファイルの呼び出しのみをサポートしていた。

C Shellと互換性があるファイル名修飾子(%fなど)

カレントディレクトリを変更した後から過去のカレントディレクトリに戻ることができる、PushD、PopDコマンド

IFコマンドで大文字・小文字を区別した文字列比較、数値比較、ブロック記述をサポート。

SETコマンドで数値の演算代入をサポート

REMがコメントになった。COMMAND.COMでは何もしないコマンドだった。

後継および将来性

cmd.exeの後継は.NET Framework/.NET Coreをベースにオブジェクト指向言語として再構築されたPowerShellであり、Windowsコマンドと比べて高い柔軟性と記述性を持つ。いくつかのWindowsコマンドに関して互換エイリアスが用意されているなど、ある程度の互換性も持っているが、完全な上位互換ではなく、コマンドプロンプトとは依然として共存関係にある。マイクロソフトはcmd.exe廃止の噂に関しては全面否定しており、例えばWindows自身をビルド&テストするために自動化されたシステムにおいてcmd.exeに依存した多数のスクリプトが利用されていることなどから、将来的にWindowsから取り除かれることはないとしている[3]
Windowsエクスプローラーとの統合

Windows 7エクスプローラーでは、Shiftキーを押しながらコンテキストメニューを表示すると、「コマンド ウィンドウをここで開く」というメニューコマンドが出現する[4]。このコマンドを実行することで、指定フォルダーをカレントディレクトリに設定した状態でコマンドプロンプトを起動することができる。

Windows 8.1ではスタートボタンを右クリックする、またはWindowsキーを押しながらXキーを押すことでシステムコマンドメニューが表示され、コマンドプロンプトを通常権限または管理者権限で起動することができる。

Windows 10 Creators Update (バージョン1703) では、既定のコマンドシェルがPowerShellに置き換えられ、エクスプローラー上でShiftキーを押しながらコンテキストメニューを表示すると「PowerShell ウィンドウをここに開く」というメニューコマンドが出現するようになり、またシステムコマンドメニューにはコマンドプロンプトの代わりにPowerShellが表示されるようになった。ただし設定変更により従来通りコマンドプロンプトをシステムコマンドメニューに表示させることも可能である[5]
文字コード
コマンドプロンプトの文字コード

コマンドプロンプト(cmd.exe)自体が使用している文字コードはUnicode (UTF-16) であり、(コマンドからの出力がUnicodeでありフォントがあれば)Unicode特有の文字を問題なく画面に表示することができる。ただしバッチファイルCOMMAND.COMとの互換性維持の観点から、Windowsのシステムロケール設定(「Unicode対応ではないプログラムの言語」のこと、表示言語とは異なる)と同じ「ANSIコードページ」でエンコードされているという前提で解釈される。例えばシステムロケール設定が日本語の場合、既定でMicrosoftコードページ932 (CP932, Shift_JIS) が使われる。ただしバッチファイルからコマンドを実行して画面に出力する場合に文字コード変換が行われることはない。コマンドプロンプトで使用するANSIコードページはシステムロケール設定を変更する他、chcpコマンドによってコマンドプロンプトごとに一時的に変更することが可能であり、例えばコードページ65001に設定するとUTF-8として解釈される。UTF-16LE(コードページ1200)はANSIコードページと互換性がないためサポートされない。
内部コマンドの文字コード

コマンドプロンプトに内蔵されている内部コマンド(typeやdirなど)はUnicode出力とANSIコードページ出力の両方に対応しており、単独で実行して画面に表示する場合はUnicodeで出力される。ただし内部コマンドの出力先が画面以外(リダイレクトパイプ)である場合は、現在のANSIコードページに変換して出力する。この挙動はcmd.exeのデフォルト(/Aオプション)設定時の動作であり、/U オプションを付けて起動することでUTF-16出力に変更することが可能[6]である。バイト順マーク (BOM) はテキストとして保存した場合に必要なものであるため付与されない。
外部コマンドの文字コード

Windowsではアプリケーションソフトウェアの一形態として、コマンドラインインターフェイス (CLI) を持つ「コンソールアプリケーション」があり、これは単独で動作させることができるだけでなくコマンドプロンプト上で動作させることもできる。これにより、ユーザーが外部コマンドとして独自のコマンドを開発し、リダイレクトパイプを駆使してバッチ処理に応用することができる。

外部コマンドが出力する文字コードはその外部コマンドの実装によって異なり、一般にコマンド開発者はCLIコマンドの出力をUnicodeモードで行なうか、MBCSモードで行なうかを選ぶことができる。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:41 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef