パスワードを忘れた? アカウント作成
17379494 story
Windows

Windowsのコマンドプロンプト(cmd.exe)、使ってる? 174

ストーリー by nagazou
補完 部門より
headless 曰く、

Windows からコマンドプロンプトが簡単にはなくならないことについて、Microsoft が再び解説している (Educator Developer Blog の記事On MSFT の記事BetaNews の記事)。

コマンドプロンプト (cmd.exe) の運命については、Windows 10 Insider Preview で標準のコマンドシェルが Windows PowerShell に置き換えられた時にも話題となり、Microsoft では Windows のビルドでも使用する多数の cmd スクリプトの実行環境などとして必要なコマンドプロンプトが簡単にはなくならないと明言していた。

今回は Windows ターミナルがコマンドプロンプトを置き換えるのではないかと話題になっていることを受けたものだという。そもそも Windows ターミナルはコマンドプロンプトや Windows PowerShell、Linux シェルなどのコマンドシェルプログラムを実行するためのホストプログラムであり、コマンドプロンプトを置き換える性質のものではない。

記事ではその違いを解説する Open at Microsoft のエピソードを紹介しつつ、Windows ターミナルがコマンドプロンプトを置き換える可能性の有無に言及するなど混同した様子もみられるが、結論として Windows ターミナルや PowerShell が Windows のコマンドライン環境でコマンドプロンプトを補完する存在だと述べている。

最近コマンドライン環境が注目される AI 開発の場面ではコマンドプロンプトがメインとなることはないが、多くのユーザーがコマンドの文法や構造を熟知したコマンドプロンプトの人気が簡単に失われることはないという。コマンドプロンプトは現在も多くの Windows ユーザーの心に特別な場所を占めているとのこと。スラドの皆さんはコマンドプロンプトに愛着があるだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 【新規 PC の初期設定として】(修復無限ループに陥らない用心の為)
     「bcdedit /set {default} bootmenupolicy legacy」
     起動時に「F8」キー連打で起動メニューが出てきます
     (Windows7までは標準だったのが8以降隠されてしまった機能)

     Windows10 標準に戻すには
     「bcdedit /set {default} bootmenupolicy standard」
     (この状態でも『回復処理』の中で設定をすれば起動メニュー出せるが面倒臭い)

    【ディスクのチェック】(直接経過が見えるのでGUIのツールより精神衛生上良い)
     日常的に「chkdsk c:」(読取り検査)
      ↑で修復必要と言われたら「chkdsk c: /f」(論理障害があったら修復)
     たま~に思い出したらその日の作業終りに「chkdsk c: /r」(ドライブ全体の表面チェック)

    【ログインパスワード失念者のお助け用】
     Windows インストールメディアで起動 → 回復処理で cmd を選択
     「ren utilman.exe utilman.org」
     「copy cmd.exe utilman.exe」
     再起動してログイン画面まで来たら『ユーザ補助』のボタンをクリックすると
     コマンドプロンプトが登場

     1)ローカルアカウントの場合
      「net user "ユーザ名" *」
       → 新規パスワード入力を2回促されるので入力(ただEnter押せばパスワード解除)

     2)マイクロソフトアカウントの場合(自身の腕ではパスワード変更/解除不可)
      「net user administrator /active:yes」→ 再起動
      ログイン画面に「administrator」が現れるのでそちらにログイン
      新規にユーザーを作成し、パスワードを失念したユーザーフォルダから
      新規のユーザーフォルダにデータを移す
      作業が終了したら管理者権限ならどこでもいいので
      「net user administrator /active:no」→ 再起動(administrator 退場)
      今後は新規のユーザーで作業するよう促す

      ※マイクロソフトアカウントにオフィスの登録等している人には
       携帯電話を登録して、そちらで本人確認できるよう促している。
       「パスワードを変更していないのに通らなくなる」という事例が結構あるので。

    【パフォーマンスインデックスの表示】
     Windows7 では『システムのプロパティ』にクリックボタンで簡単に表示された機能
     ソフト不要なのと、割と体感に近い比較ができるので事務用PCの評価に使用
     cmd または powershell にて「WinSAT formal」→ ベンチマークが行われる
     上記コマンドでは結果が表示されないので結果表示のコマンドを打つ
     「Get-CimInstance Win32_WinSAT」← cmd にはこのコマンド無いので powershell必須

    パフォーマンスインデックスの結果表示例
    ( CPU:Ryzen 5 1600, RAM:8GB(DDR4), SSD:256GB(M.2), Video:GT730 )
    PS C:\Users\Administrator> Get-CimInstance Win32_WinSAT

    CPUScore       : 9.2
    D3DScore       : 9.9
    DiskScore       : 8.1
    GraphicsScor     : 8
    MemoryScore      : 9.2
    TimeTaken       : MostRecentAssessment
    WinSATAssessmentState : 1
    WinSPRLevel      : 8
    PSComputerName    :

    # 最近 Windows11-Home をローカルアカウントでログインさせる依頼が増えてます
    # OOBE 中に「Shift」+「F10」を押して cmd 起動
    # 「Windows\System32\oobe」フォルダ中の「passnro.cmd」を実行
    # 再起動すると、今度は OOBE 中にローカルアカウントに進むボタンが出て来る

  • https://qiita.com/yz2cm/items/8058d503a1b84688af09 [qiita.com]
    まとめてくれて感謝に堪えない

  • https://srad.jp/~uratan/journal/552443/ [srad.jp] (自分の日記、これを書いたのは11年前か)

    今でも作業の基本で、ええ愛着はあります。(ただしvimとUnxUtilsは必須)
    tcsh に向かってる時に比べてちょっと身構えながら使う感じが、
    親戚の家で微妙にくつろげない感じにちょっと似てていい。

    あと仕事でコマンドプロンプトで作業してると新人が
    「この人黒い画面開いたままマウスも触らず何してるんだろ?」
    と怪訝な反応するのもおもしろい。

    • [3] ウィンドウアプリで特定の文字列を置き換える目的でコピペする時に、
      Windowsでは選択した文字列をクリップボードの文字列で置き換えることができる、繰り返し実行も問題ない。
      X Windowでは置き換えたい文字列を選択するだけでコピーしちゃうので、変更先文字列をコピペで持ってくることができない。
      (これtwmとか古いwindow managerでの挙動なので今時のwmでは当てはまらないかもです)

      親コメント
    • [1.2]
      cmd.exe では cd や rmdir に対しては補完候補がディレクトリのみに限定される。

      …先頭一文字入れるのが癖になってて あまりありがたみを感じないけど実は恩恵を授かってたのかなぁ。
      手持ちの csh,tcsh,bash ではそういう区別はしてくれなかったので書いてみたが、そんなシェルもありそうだからエントリーは却下かな。

      親コメント
  • 知らんけど (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2023年09月28日 17時29分 (#4536931)

    ipconfigコマンドを打つためだけに立ち上げている

    自IPと内部に持っているバーチャルなネット?のIPを確認するので一番手っ取り早いのがコマンドプロンプトでこのコマンド打つので

    他に使用してないなぁ

    • by mars12 (28939) on 2023年09月28日 17時34分 (#4536936) 日記

      自分もほぼ同じです。
      PowerShellでもできるけど最初の起動が断然cmd.exeのほうが早い。

      親コメント
      • by Anonymous Coward on 2023年09月28日 17時56分 (#4536959)

        PowerShellの起動、遅いですよね。なにやってるんだろ?
        あとログイン直後に一瞬ふわっと表れて消える黒い窓、あれってcmdじゃないですか?PowerShellでやったら目で確認できるくらいの時間窓が残っていそうな?

        親コメント
    • 複数ファイルのファイル名を一括で変えたりするときにcmd.exe使ってる。

      dir /b > foo.bat でファイル一覧取得
      (/b:ファイル名だけ表示。必要なら、/s:サブディレクトリ化のファイルを全部表示、も付ける)
      Excel でfoo.bat を開く。batをExcelドラッグドロップするとテキストファイルとして開かれる
      ファイル一覧をB列に移し、A列は「ren」にして、C列に変更後のファイル名を入れていく
      上書きするとタブ区切りテキストになるので、foo.bat実行
      てな感じで。

      親コメント
    • by gonzo (38147) on 2023年09月29日 12時05分 (#4537452)

      ipconfigやpingなどはやっぱりコマンドプロンプトですね。
      ついでに言うと、コマンドプロンプトが
       Windowsキー+R ⇒ cmdと入力 => エンター
      でさくっと呼び出せるのもありがたい。

      親コメント
  • Windows11になってバッチスクリプトが動かなくなった
    と思ったが、sjisファイルにおける日本語の問題でした。

    スクリプトの上の方に、
    set LANG=ja_JP.sjis
    と追加したらOKでした。

    変数名に日本語を使いまくっていました。

  • by Anonymous Coward on 2023年09月28日 17時14分 (#4536917)

    cmdの良さが全くわからん。

    • by Anonymous Coward

      別に良いものでは無い。
      paint.netがインストールされていても単純な用途ではペイントの方が合っていることはあるのだ。

  • なんかDHCPの取得に失敗するなぁとか、ping打ってみるか、findで文字列探すかーなんて時にcmdを呼び出しますね。

    PowerShellでも良いんですが、findコマンドで文字列検索する時とか引数でダブルコーテーションだけで良かったのが、
    その前後にシングルコーテーション付けるとか手間なので、微妙にPowerShell面倒なんですよねー。
  • by jizou (5538) on 2023年09月28日 17時36分 (#4536939) 日記

    コマンドプロンプト は MS-DOS時代からの互換性のためにないと困る
    Linuxぽく使いたいので、bash とか busybox が使いたい

    PowerShell がいらない子。

  • by Anonymous Coward on 2023年09月28日 17時43分 (#4536946)

    まあ使い慣れてる、というのが一番かな。

    ネットワークの試験で1つのインターフェースに複数のIP Addressを
    設定したい時とかGUIでちまちまやれるほど我慢強くないので適当に
    バッチファイルにして実行というパターンなんかが典型例。

  • スクリプトを運用とかしようとすると、会社標準のセキュリティポリシーでブロックされるとかそういうことが起きてしまうのがね……。

    その気になればC#のソース実行してWin32APIを直接叩けたりしてしまうので、まあブロックもやむなしとは思うんだけど、それじゃあツールとして使いにくいんだよね。

    そういうわけで、バッチファイルで出来ることはそっちでやるほうが便利で、cmdの出番はなくならないというのが実情。

    --
    しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
  • by st1100 (45287) on 2023年09月28日 21時36分 (#4537126)

    プライベートでは、日々常用している

    デジカメデータをexiftoolでメタデータを吸い出してログを取り、かつそれにもとづきリネームし、
    Irfanviewで縮小画像を作り、とか
    かつ、デジカメの機種によって処理を変えたりとか云々で、バッチスクリプトが千行近くに至ってた。

    そのほか、ffmpegで立体動画を作ったりとか、GPSデータを処理したりとか。

    あと、職場のサーバーでは、
    ウィンドウズのエクスプローラーの検索が時間かかったり、まともに調べてくれなかったりするので、
    旗Rでcmdを起動し、dir *検索文字列*.* /s /b
    とかで検索したりする。

    WindowsのGUIはどうでもよいが、コマンドプロンプトがなくなったら生きていけないと思う
    (実際には、なくなったら死なずに、すぐにLinuxのなんかのシェル乗り換えるだろうけど)

  • by Anonymous Coward on 2023年09月28日 17時07分 (#4536912)

    最近はPowerShellを使うことが多いけど、nanoserverでPowerShellが入っていない環境があるのでcmd.exeも使ってます。
    愛着は別にないです。

  • by Anonymous Coward on 2023年09月28日 17時11分 (#4536913)

    ffmpegとかwiresharkとか。

  • by Anonymous Coward on 2023年09月28日 17時16分 (#4536919)

    Windowsターミナルや PowerShellと並列なのは互換性が無いからでしょう。
    互換性が無いからには使い分けなくてはならないわけで。
    同じように使えて同じ結果が得られるならリプレースしてもいいだろうけど。
    そうじゃないんでしょ?

    • by Anonymous Coward on 2023年09月28日 20時29分 (#4537086)
      ターミナルのGUI ... Windowsターミナル ⇔ conhost.exe
      シェル(CUI) ... PowerShell ⇔ cmd.exe (他、wsl.exeなど)

      ※Windowsターミナルの中でPowerShellやcmd.exeが動くのであって、並列ではない。
      親コメント
    • 使い分ける、というか、現時点で存在しているcmd.exeのバッチファイルなんかは、そのまま使えば良いし、
      新たに使うのであれば、Powershellにした方がいいだろうね。
      cmd.exeから起動できる*.exeや*.comはPowershellからでも起動できるし、
      制御構造はPowershellの方が圧倒的に書きやすい。

      もっとも、cmd.exe以外を覚える気が1mmも無い、ということなら、cmd.exeを使うしかないね。

      親コメント
  • by Anonymous Coward on 2023年09月28日 17時22分 (#4536923)

    プロンプトが必要になるが、Win+R→cmdでコマンドプロンプト呼ぶのが簡単、だと思いこんでる。

    • Re:数年に一度 (スコア:3, 参考になる)

      by Anonymous Coward on 2023年09月28日 18時26分 (#4536991)

      最近エクスプーラーのパスのところでcmdって入力すると
      そこをカレントにしてcmd.exeが起動されるのを知ったぜ。

      もっと早く知りたかった……

      親コメント
      • pathさえ通しておけば、そこから直にバッチファイルも実行できますよ。

        親コメント
      • by Anonymous Coward on 2023年09月28日 23時02分 (#4537187)

        ダウンロードフォルダでそれやるとダウンロードしたcmd.exeを実行してしまって危険なのをなんとかしてほしい。昔はシフト+右クリックからの「コマンドプロンプトをここで開く」で安全に開けたけど、それではPowerShellしか起動できなくなってしまった

        親コメント
  • by Anonymous Coward on 2023年09月28日 17時24分 (#4536925)

    少なくとも数年前、PowerShell 7 あたりでシンボリックリンクを作る New-Item -ItemType SymbolicLink が
    うまく動いてなかったので、そのためだけに cmd.exe で mklink を使ってたけど
    今試したらうまくリンク張れたので、もう出番は無いかもしれん。

  • by Anonymous Coward on 2023年09月28日 17時35分 (#4536937)

    cmd.exeで事足りるので十分
    普段はlinux使ってるのでPowerShellは全く知りません

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...