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

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

ストーリー 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

      謝ったら負けってのはこういうメディアでも常識なんでしょうか。

  • >CmdはWindows上でファイルエクスプローラーやEdge、Internet Explorerと並ぶ最も実行頻度の高い実行ファイルである

    開発者としては、どういう局面で使われてるのか検証して、わざわざコマンドプロンプト呼び出さなくてもいいようにするのが先だとは思わないのか?

    まあ「開発室内に置いて実行頻度が高い」ということなのかもしれないが、それにしても、なぁ。

    ここに返信
    • by Anonymous Coward on 2017年01月08日 14時30分 (#3140795)

      ×置いて

      開発者としては、世の中のCUIツールすべてにGUIを強制するのが先だとは思わないなあ。

      • by Anonymous Coward on 2017年01月08日 14時45分 (#3140799)

        バッチ処理なんかで、一般ユーザーが気が付きもしない形で使われているのも実行頻度に含めているんじゃないか。
        前にいた大企業のイントラでも、ログイン時の処理の一部として毎回cmdスクリプトを走らせていた。
        (一瞬cmd.exeのウィンドウが出てきてすぐ消えるので分かる。中身は見なかったが、ネットワークの設定とかやっていたんだろう。)

    • by Anonymous Coward

      普通は、わざわざGUIで操作したくないものに利用しているのに、なぜ逆に不便な方向に持って行く必要があるのでしょうか?

      • by Anonymous Coward

        そうでもないぞ。
        強制されなければGUIを使いたい人は勝手に使えばいいだけのこと。彼らにとっては不便にならん。
        CUIを外すのは、それとは関係無い話だから。

        自分でも普通はって書いてるように、むしろ
        「普通じゃない環境で便利なものを、無理に外して不便を強制する話」
        と言った方が分かりやすいか?

    • by Anonymous Coward

      処理をGUIで入力して自動化できるようになったらいいのかなと思うときはある。思うときはあるが多分誰も使わないんだろうなとエクセルの利用状況を見て思う。
      VBAのような機能に一般ユーザーを誘導するというのはそれはそれでありだと思う。
      ただ開発者が設定を起動するたびシャットダウンするたびにリセットするような目的で使っていることも考えられるわけでそういう用途にGUIを強制されるのは鬱陶しい。
      根本的にはcmd.exe用の*.batをどう巻き取るかという問題で現実的にはA,ユーザが他で動くようにスクリプトを書き換える。時期を見てcmd.exeは廃止。B,cmd.exeは機能の追加を行う行わないは別として維持する。C,cmd.exe互換のなんかを用意するなりpowershellかBoW(Bio Organic Weaponではない)でコマンドプロンプトのスクリプトを実行できるようにする。あたりが考えられてマイクロソフトは一番楽なBを選んでるってだけ。

      • by Anonymous Coward

        >処理をGUIで入力して自動化できるようになったらいいのかなと思うときはある。
        それって、「グラフィカルなプログラミング言語を作れ」って話と等価だと思う。
        そしてそれは素人の妄想にすぎず、常に失敗の歴史だった。
        たかが条件分岐やループさえも、グラフィカルに表記してもわかりやすくなどならんし、
        Excelのセルの指定方法ですら、相対的にするか絶対的に指定するかで、お手上げの初心者はいるのだもの。

        まして遙かに複雑な処理をGUIでの入力を強制されるくらいなら、
        Emacsみたいな普通のテキストエディタで書かせろよってなるでしょ。

        • by Anonymous Coward

          Emacsみたいな普通のテキストエディタで書かせろよってなるでしょ。

          Emacsとかviは普通じゃないと思う。古臭い。モードの切り替えはいいとしてカーソル移動が古臭い。カーソル移動はゲームと一緒だよって言われても最近のおっさんですら普通ゲームはwasdでしょうとこうなる。

      • by Anonymous Coward

        そんなあなたにMS純正の操作記録ツール「ステップ記録ツール」!

        .
        .
        .

        # なお、操作の再生はできません

    • by Anonymous Coward

      Windows ServerではGUI無しにできますけど。Nano ServerインストールならCUIも無しに。

    • by Anonymous Coward

      アプリからも呼び出せるるので、どういう局面かを把握するにはあらゆるアプリを検証する必要があるでしょう
      インストーラーで使ってることもあるので、削除してしまうとアプリがインストールできなくなってユーザは大変です
      これだけでもう削除は無理って思えますよね?

    • by Anonymous Coward

      ここ数年の傾向としてはGUIが売りってわけでもない。PowerShellのコマンドレットとしては提供してるけどGUIでは用意していない設定・機能なんてザラだし。
      サーバー版の方もGUI排除の流れが加速しているし。

    • by Anonymous Coward

      全部の操作をGUIで出来たらいいなーと思うような人の中には
      操作説明もGUIでされないと分からない人も意外といるので
      教える立場になる人からしたらCUIでも出来る事ならばCUIで実行出来る方法も残してくれ!となります

      • by Anonymous Coward

        そういうGUIのツールの実態はCUIコードを生成して shell に投げるだけ

    • by Anonymous Coward

      コマンドプロンプトから起動できるようなプログラムですと、
      他のプログラムからの操作もしやすいので、
      人間がいちいち操作しなくてもいい、というメリットがあります。
      (例: 定期的にビルド、テストして結果を報告する)

      GUIでもできなくはないでしょうが、めんどうすぎる。

  • 今調べてみて気付いた。これはまだまだ先が長そうだ。

    ここに返信
  • 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

      cmd.exe で問題なく動いて、社内しか使わないツールを、GUIで(新しいUIを)作り直すというのは、
      車輪の再発明という意味では無駄なことなのかもしれない。

      というかむしろ車輪の再発明は別に悪い事じゃないとは思うんだけど。

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

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

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

    ここに返信
    • by Anonymous Coward

      致命的セキュリティーバグが見つかれば、抹消できるのでは?

      • by Anonymous Coward

        なにかソフト、モジュールを取り除くということは互換性を壊すことを意味しますもんね
        アップデートでそれをやったら大混乱が予想されますよね

        メジャーバージョンアップで取り除くとともに周知徹底するという方法もあるんでしょうけど
        多種多様なソフトの互換性に影響をおよぼしかねない点は変わらない

        結局、一回入れたものは、なかなか取り除くことは難しく
        使う人が少なくなって抵抗・反発・クレームの量が少なくなりそうという見通しが立つまでは維持される
        という決着になるしかないのでしょう

        • by Anonymous Coward

          おっと、もうひとつ上にぶらさげないといけないのに
          操作間違えた

      • by Anonymous Coward

        disabled by defaultが関の山

      • by Anonymous Coward

        脆弱性を修正できないから廃止ってのは多くの場合脆弱性を修正してまで維持する気がないというのをオブラートに包んだだけでは?
        今でもセキュリティ上致命的なバグはウィンドウズに限らず日夜発見されていますが大抵の場合修正されますし。
        枯れたコードはほっといても問題ないと思う。だって枯れてるんだから。ほっとくとまずいのは腐ったコード。

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

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

    ここに返信
    • by Anonymous Coward on 2017年01月08日 14時02分 (#3140784)

      これはこれで緩めると文句言われるからどうにもなんねえよなぁ

    • by Anonymous Coward on 2017年01月08日 15時39分 (#3140815)

      LOVELETTERワーム [wikipedia.org]のせいで危険な機能扱いされたWSHの轍を踏みたくないんでしょう
      コマンドシェルなんてどうせ素人は使わないんだし

    • by Anonymous Coward

      >ExecutionPolicyが足枷になって

      どういうこと? 一回設定して終わりじゃん

      • by Anonymous Coward

        一台ならそれでいいんだけどな。

        はいはいドメイン作ってグループポリシー

        • by Anonymous Coward

          ポリシー設定しなくても一時的に実行させたいだけなら
          powershellの起動オプションでExecutionPolicy指定するだけでいいんじゃない?
          恒久的ならそれこそExecutionPolicy設定するスクリプトをそれで実行してしまえば。

  • by Anonymous Coward on 2017年01月08日 14時04分 (#3140786)

    エクスプローラーから新規フォルダの作成→名前の変更をやると高確率でエクスプローラーが無反応になる現象に見舞われ
    新しいフォルダの作成はcmdからmkdir~とやってるので手放せません!

    ここに返信
    • by marute (13883) on 2017年01月08日 16時46分 (#3140828) 日記

      新しいフォルダの作成はcmdからmkdir~とやってるので手放せません!

      powershellのコマンドレットにもmkdirあるので手放せますね。
      しかもaliasとしてmdまで登録済み!

      #そーいう問題ではなくて?

    • by Anonymous Coward

      md や ren は日本語環境CMDに限ってはクサレだろ
      ファイル名はアルファベットしか使わんとか補完は使わんとかキャレット移動なんて絶対しないてなら問題無いかもしれんが

      • by Anonymous Coward

        CUIにおける日本語環境が腐っているのであって別にCMDに限った話ではないと思う

        • by Anonymous Coward

          未L10Nプログラムに無理やり日本語食わせてる状況で表示崩れるならまだ許せるが
          有償日本語OSなのに表示壊れたまま既に数世代(7辺りからだっけ?)放置
          MSは日本の古参ユーザを舐めてるとしかおもえんわ

    • by Anonymous Coward

      > エクスプローラーが無反応に

      SysInternalsのProcessMonitorでファイルIOやレジストリの様子を観察したいなあ。

      シェル拡張のやつが悪さしてる事がある。
      俺のAcer機のWin8.1は、エクスプローラ上のコンテキストメニューを出すのがめっちゃ遅かったんだけど
      インテルのグラフィックの拡張機能も、メニューの1項目として出てくるんだけど
      そいつがアイコンを表示するのに、なぜかやたらとレジストリを読みまくってた(んだったかな?もう忘れた)
      グラフィックドライバの更新を当てたら治った。

  • by Anonymous Coward on 2017年01月08日 16時50分 (#3140831)

    コマンドプロンプトは滅びぬ、何度でも甦るさ!
    コマンドプロンプトの力こそ人類の夢だからだ!

    というムスカ大佐のセリフ(改変済)が浮かんでしまった

    ここに返信
    • by Anonymous Coward

      つかもーcommand.comとcmd.exeが置き換わってても
      気づいてなさそうなコメントがチラホラあるので
      もう半世紀程は平気なんじゃない?

  • by Anonymous Coward on 2017年01月08日 20時02分 (#3140906)

    Explorer.exeに置き換わって6年ぐらい(XP SP2~)で使えなくなりましたが

    ここに返信
    • by Anonymous Coward

      言いたいことがあるならはっきり言ったら?

    • by Anonymous Coward

      別にスタートメニューがあるからよいんじゃない?

      というか、プログラムマネージャーを発展させてスタートメニューができたんだとおもうよ。

typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...