[ホーム] > [間違えやすい類語 IT編一覧] > [【最大メリットとは】Powershell と コマンドプロンプトの違いを比較表で説明]

【最大メリットとは】Powershell と コマンドプロンプトの違いを比較表で説明

作成日:2020/01/29

概要


powershell とコマンドプロンプトの違いに関して説明します。どちらもWindowsのインタプリタです。コマンドプロンプトは大昔のWindowsの時代からある、キャラクタベースのインターフェースです。UNIX系、Linux系でもターミナルとして存在します。そもそもWindowsより以前のOSは MS-DOS といいコマンドプロンプトのみでした。当時はWindows のようなGUI(グラフィック)の画面は存在しませんでした。そのころの名残により「コマンドプロンプト」ではなく「MS-DOS窓」と呼ばれる場合もあります。

Powershell の大きなメリット


Powershell の大きなメリットはパイプラインでテキスト以外にもオブジェクトを渡すことが可能な点です。コマンドプロンプトのパイプは"テキスト"のみしか渡せません。要するにコマンドからコマンドへはテキストでデータを渡すということです。一方でPowershellはオブジェクトを渡せるため、例えばサービスの一覧を取得して次のコマンドに渡す場合はサービス名、exe名、表示名などを渡すことが可能となります。

例えば以下の例ではGet-Serviceでサービスの一覧をオブジェクトとして出力してからパイプ処理で ステータスを確認しています。

Powershell の場合

Get-Service | Where-Object { $_.Status -eq "running" }
Status Name DisplayName
------ ---- -----------
Running AdobeARMservice Adobe Acrobat Update Service
Running Amsp Trend Micro Solution Platform
Running AppHostSvc Application Host Helper Service




コマンドプロンプトの場合は単にテキストの検索となるため、場合によっては肝心な情報が取得できません。

C:\sc query | findstr RUNNING
STATE : 4 RUNNING
STATE : 4 RUNNING
STATE : 4 RUNNING
<以下省略>



マルチスレッド


他の利点として Powershell がマルチスレッドをサポートしている点が挙げられます。

workflow 、foreach -parallel を組み合わせてマルチスレッドを実現します。 (ただし厳密な意味でのマルチスレッドではなさそうです)


参考:同時に複数IPアドレスへPINGを送信するコード

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明powershellコマンドプロンプトWSH(Windows Scripting Host)
特徴コマンドプロンプトの後継機能。Windows 7以後で標準機能(無料)初期のWindows からの標準機能(無料)Windows 98以後からの標準機能(無料)
機能圧倒的に高機能
原則として「コマンドプロンプト」の機能が使える。
貧弱コマンドプロンプトよりは高機能だが、プログラミング機能でありシェルの機能はない欠点あり。結局普及しなかった。
使い分け複雑な処理を行いたい場合。ちょっとした処理を行いたい場合。copy コマンド、cdコマンド,dirコマンドなど。バッチより複雑なプログラムを行いたい場合。(VBScriptなど)
起動方法以下のどれか
・Windowsのスタートメニューから「Windows Powershell」を起動する。
・「ファイル名を指定して実行」から「powershell」コマンドを実行。
以下のどれか
・Windowsのスタートメニューから「コマンドプロンプト」を起動する。
・「ファイル名を指定して実行」から「cmd」コマンドを実行。
wscript [実行ファイル名]

cscript [実行ファイル名]

など。
画面イメージ

拡張子ps1bat
ファイルの実行方法powershell c:\temp\code.ps1
c:\temp\code.bat


[ホーム] > [間違えやすい類語 IT編一覧]
,







【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。