パスワードを忘れた? アカウント作成
13116900 story
プログラミング

Microsoft曰く、そう簡単にWindowsからコマンドプロンプトはなくならない 7

ストーリー by headless
不滅 部門より
Windows 10 Insider Previewでは、ビルド14971以降で標準のコマンドシェルがコマンドプロンプト(cmd.exe)からWindows PowerShellに変更されているが、それでもコマンドプロンプトがなくならない理由をMicrosoftのRich Turner氏が解説している(Windows Command Line Tools For Developersの記事OnMSFTの記事)。

これはComputerworldによる2本の記事「Say goodbye to the MS-DOS command prompt」「Follow-up: MS-DOS lives on after all」に反論するものだ。この記事はBusiness InsiderLifehackerなどでも取り上げられ、コマンドプロンプトが利用できなくなることを懸念する多くの声が寄せられたそうだ。

Turner氏はこれらの記事が事実ではないとして、Cmdは近い将来にも遠い将来にもWindowsから削除されることはないと述べている。実際のところ、MicrosoftではWindowsのビルドやテストを自動化するシステムで長年にわたり作成した多数のCmdスクリプトを使用しており、CmdがなければWindowsをビルドできないという。

また、CmdはWindows上でファイルエクスプローラーやEdge、Internet Explorerと並ぶ最も実行頻度の高い実行ファイルである点や、多くのカスタマーやパートナーがCmdに完全に依存している点も挙げている。そのため、Cmdスクリプトやツールを使用する人がほぼ完全にいなくならない限り、CmdはWindowsに残っていくとのこと。

Turner氏はComputerworldの記事の間違いも指摘している。一つはビルド14971のリリースノートにある、PowerShellがWin+Xメニューのコマンドプロンプトを置き換えるという「It replaces Command Prompt (aka, “cmd.exe”) in the WIN + X menu」部分だ。これを引用したComputerworldの記事では「「It replaces Command Prompt (aka, “cmd.exe”).」となっており、まるでコマンドプロンプトが削除されるような記述に変えられていた。また、CmdをMS-DOSと同一視していることについても誤りであると述べている。

当分Cmdがなくなることはないにもかかわらず、デフォルトのコマンドシェルを置き換えた理由としては、PowerShellのようなパワフルなシェルをCmdでは実現できないためだという。Cmdスクリプトやツールはレガシーな機能や挙動に依存するため、下手に機能を拡張したりすれば困る人が出てくる。一方のPowerShellは高度な拡張性や柔軟性を持っており、昨年オープンソース化されたことでWindows以外のプラットフォームでも利用可能となっている。
  • Microsoft: 最新のWindows 10リリースで「コマンドプロンプト」を削除 - BusinessNewsline [newsln.jp]
    今見ると、読みづらい小さな文字で言い訳が展開されている。

    ここに返信
    • by Anonymous Coward

      エッジが標準になってIEが隅に追いやられたからってIEがなくなるわけではないのと同じことですな。
      IEもcmdもいつかなくなりそうだが当分問題あるまい。

  • by Anonymous Coward on 2017年01月08日 12時19分 (#3140760)

    実際のところ、MicrosoftではWindowsのビルドやテストを自動化するシステムで長年にわたり作成した多数のCmdスクリプトを使用しており、CmdがなければWindowsをビルドできないという。

    それはWindowsのビルドに./configure的な処置が必要で、それをCMD.exeで書いてるのだろうか・・・・
    それとも./configure的なものを生成する、MS謹製autotools的なものが存在し、MS内部では広く使われているのだろうか・・・・
    やっぱり本家のautoconf/automakeがそうであるように、バージョン毎に非互換の依存関係作り出してるんだろうか? それこそ容易にはPowerShellで置き換えれないほどに・・・

    コマンドプロンプトがなくならない理由よりも、そちらの方が非常に気になる。

    ここに返信
    • 処理開始だけならPowerShellからでもいいけど、処理途中にcmdの内部コマンドとか利用で

      cmd /c xxx

      みたいな箇所があって、とかではないかな、と思う。

      しらべて改訂するには手間かかるし、依存といえば依存だし。
      # がんばればそこまでじゃないにしても、ビルド環境が正常かの試験ってむずかしそうだから手を付けにくいってのはありそう

      --
      M-FalconSky (暑いか寒い)
    • by Anonymous Coward

      意外と普通だった。天才エンジニアでもセットアップに三ヶ月かかるシステムというからもうちょっと色々社内製のツールが乱立しているのかと思っていた。

  • by Anonymous Coward on 2017年01月08日 12時28分 (#3140762)

    機能追加やちゃぶ台返しがないなら、レガシーでも枯れたコードを放置したってコストはかからんしね。
    依存関係チェックして削除する方が1万倍大変。

    いわゆるレガシーシステムで問題なのは、機能追加やバグフィックスや、さらにはちゃぶ台返しまでもが
    日常的に起きているのに、コードや仕様がスパゲッティでメンテ不可能になってることだから。

    ここに返信
  • by Anonymous Coward on 2017年01月08日 13時20分 (#3140774)

    ExecutionPolicyが足枷になってつい新規のスクリプトもcmdでやってしまう。
    デフォルト化をきっかけに名実ともに主流になるのが先ですね。

    ここに返信
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...