コマンドプロンプト(cmd.exe)は無くなるという誇張された噂
コマンドプロンプト(cmd.exe/CMD)は無くなるという記事や噂に対し、「Microsoft」のRich Turner氏がこれを明確に否定しています。2016年12月にCMDが無くなるという記事が掲載されました。
結果、困惑したユーザーやパートナーからRich Turner氏に対して、これらのニュースは本当かどうか尋ねるメールが送られてきたとのことです。
コマンドプロンプトは無くならない
コマンドプロンプトは無くなりません。コマンドプロンプトは数百万ものビジネス、開発、IT Proの分野で日常的に利用されており、これからもコマンドプロンプトはWindowsの重要な1要素として残ります。
コマンドプロンプトは、Windowsの必要不可欠な機能であり、コマンドプロンプト上で動作するスクリプトやツールを利用するユーザーがほとんどいなくなるまで、コマンドプロンプトはWindowsに含まれ続けます。
Windows自身のビルドやテストを行う自動化されたシステムの多くは、コマンドプロンプトのスクリプトの集合体で構成されています。
コマンドプロンプトは、ファイルエクスプローラーやEdge、インターネットエクスプローラーと同様に、Windowsで最も頻繁に使用されるツールの1つです。
ユーザーやパートナーの多くは、既存システムを維持するため、また後方互換性の確保のためにコマンドプロンプトに依存しています。
なぜこんな噂が?
コマンドプロンプトがなくなるという噂は、Windows 10 Insiders build 14971のリリースノートの記述がきっかけではないか、とのことです。すべてのパワーユーザーに最善のコマンドライン環境を提供するため、PowerShellはファイルエクスプローラーから起動するデフォルトのコマンドシェルになった。
Win+Xキーで表示されるメニュー内のコマンドプロンプト(cmd.exe)をPowerShellに置き換え、ファイルエクスプローラーのファイルメニューの同項目をPowerShellに置き換え、そしてファイルエクスプローラーの空いている領域を右クリックした時に表示されるコンテキストメニューの同項目をPowerShellに置き換える。
ファイルエクスプローラーのアドレスバーでcmdと入力すればコマンドプロンプトが起動する機能は引き続き利用できる。
引き続きコマンドプロンプトを利用したいユーザーは、「設定」を開き「個人用設定」をクリックする。
左側の項目一覧から「タスクバー」を選択し、「[スタート]ボタンを右クリックするかWindowsキー+Xキーを押したときに表示されるメニューで、コマンドプロンプトをWindows PowerShellに置き換える」をオフにする。
ポイントは以下の記述です。
Win+Xキーで表示されるメニュー内のコマンドプロンプト(cmd.exe)をPowerShellに置き換え、ファイルエクスプローラーのファイルメニューの同項目をPowerShellに置き換え、そしてファイルエクスプローラーの空いている領域を右クリックした時に表示されるコンテキストメニューの同項目をPowerShellに置き換える。
「PowerShellはコマンドプロンプトを置き換える」とは書かれていません。
またファイルエクスプローラーからコマンドプロンプトを起動する方法や、デフォルトのシェルをコマンドプロンプトに戻す方法も記述されており、コマンドプロンプトが無くなっていないことが分かります。
今までコマンドプロンプトを起動していた機能の一部で、デフォルトで「PowerShell」を起動するようになる、というだけです。
なぜデフォルトシェルをPowerShellにしたのか
コマンドプロンプトは30年以上もの間その役割を果たしてきました。昔からあるコマンドプロンプトの機能改善や改良を時代の変化に合わせ実現することは、もはや簡単なことではない、とのことです。
また、何かしらコマンドプロンプトに新機能の追加等手を加えることで、既存の古くからの機能や振る舞いに依存しているスクリプトやツールが動作しなくなるなど問題が発生するケースもあります。
もし問題が発生すればその影響は非常に大きく、Windowsのビルドシステムが動作しなくなるだけでなく、コマンドプロンプトを利用しているすべての企業で業務が停止してしまいます。
共に提供する
そのため、コマンドプロンプトは引き続き既存の役割を継続的に果たしていき、それとは別に、より高機能で多機能なコマンドシェルを望むユーザーにPowerShellを提供し、並行してコマンドプロンプトも提供してく、とのことです。コマンドプロンプトはMS-DOSではない
コマンドプロンプトは「MS-DOS」ではありません。「Microsoft」が最後に提供した「MS-DOS」は、2000年9月16日に「Windows ME」と共に出荷された「MS-DOS 8.0」です。
コマンドプロンプトはOSではない
「MS-DOS」はOSであり、「MS-DOS」上で動作する「Windows 3.x」や「Windows 95」が登場するまで、インターフェースにコマンドラインシェルを提供する主要なOSでした。一方、コマンドプロンプトはOSではありません。
アセンブラで書かれ移植性に乏しい
後期の「MS-DOS」では機能が増え、既存のアセンブラで記述されたコードのいくつかはC言語で書き直されました。しかし効率のため、多くのx86アセンブラのコードが多く残っていました。
これは当時、多くのハードウェアや周辺機器にアクセスする唯一の方法だったためです。
従って「MS-DOS」は移植性に乏しく、x86以外のCPUアーキテクチャーへの移植は困難でした。
「MS-DOS」のx86アセンブラで書かれているソースコードを、以下で見ることができます。
一方でコマンドプロンプトは全体がC言語で記述されており、様々なCPUアーキテクチャーに移植することが可能です。
MS-DOSとのスクリプトレベルの互換性
コマンドプロンプトのスクリプト言語は、「MS-DOS」の多くの一般的なスクリプトと互換性を保つように設計されています。これは「MS-DOS」及び「Windows 9x/ME」ユーザーのNTへの移行を容易にするためですが、コマンドプロンプトは「Windows NT」カーネル及びOS上で動作するため、「MS-DOS」固有の機能はコマンドプロンプトにはありません。