違いを解説君

あるゆる物事の"違い"をわかりやすく解説する情報マガジン

タイピング

ITの違い

PowerShellとコマンドプロンプトの違いをわかりやすく解説!

Windowsでは、

GUI(Graphical User Interface

を使うのが一般的ですが、Unixなどのように

CUI(Character-based User Interface

を使うこともできます。

 

はなこ
Windowsでコマンドを利用するときって『コマンドプロンプト』を使うじゃない。

最近『PowerShell』っていうのがあるって聞いたんだけど、何が違うの?

どちらもコマンド入力するために使うものだね。

でも、僕もその違いについてはよく知らないな。

たろう
はなこ
いったい何が違うのか、知りたいわね。

 

今回は『PowerShell』と『コマンドプロンプト』の違いについて解説します。

スポンサーリンク

『PowerShell』と『コマンドプロンプト』の違い

コマンド

コマンド

まずは、『PowerShell』と『コマンドプロンプト』について調べてみましょう。

最初に『コマンドプロンプト』から解説します。

『コマンドプロンプト』とは?

Windows上でMS-DOS互換環境を利用するためのシェル

のことです。

MS-DOSとは、MicrosoftがWindows誕生の前に販売していたオペレーティング・システム(OS)のことです。

コマンド入力により実行ファイルなどを動かすことができ、Windowsのように様々なプログラムを同時に動作させること(マルチタスク)はできません。

Windowsが登場して、たいていの作業はGUIを使って行うことができるようになりましたが、バッチ処理などを行いたい場合などの理由で、MS-DOS時代の環境も必要でした。

そのために用意されたのが『コマンドプロンプト』です。

『PowerShell』とは?

Windows Vistaから導入された新しいシェル

のことです。

Unix環境の場合、

シェルスクリプトによって、様々なことが簡単に実行できる

という利点がありました。

それに比べると、Windowsにあった『コマンドプロンプト』は、機能的に制約がありました。

Unixが持つ、強力なシェルスクリプトの機能を実現させるために開発されたのが『PowerShell』になります。

『コマンドプロンプト』と『PowerShell』の違いは?

『コマンドプロンプト』と『PowerShell』の違いをまとめると次のようになります。

『コマンドプロンプト』と『PowerShell』の違い

  • 『コマンドプロンプト』では、コマンドを入力するのに対し、『PowerShell』は『コマンドレット』を入力する。
  • 『PowerShell』は『.Net Framewark』上で動作している。
  • 『PowerShell』の方が機能が豊富である。

 

『PowerShell』の利点

『PowerShell』が『コマンドプロンプト』に比べて、どれくらい高機能なのかを順番に見てみましょう。

まず、

『PowerShell』は『コマンドレット』と呼ばれる独自のコマンドを使います。

これが『コマンドプロンプト』でのコマンドと同じ意味を持つのですが、

利用できるコマンドの数は、Windows7で調べたところ236個ありました。

『コマンドプロンプト』で利用できたファイル一覧表示(dir)やディレクトリの移動(cd)などはもちろん、ジョブやサービスの起動や停止、イベントログの取得など、コンピュータを管理するための『コマンドレット』などもあります。

 

また、

『.Net Framework』上で動作する

という特徴もあります。

『.Net Framework』とは、Microsoftが開発したアプリケーション開発・実行環境のことです。

『.Net Framework』上で動作することにより、

『コマンドレット』が出力する内容は、オブジェクトと呼ばれる変数で返される仕様になっています。

このオブジェクトを利用して、様々な処理ができるというわけですね。

『コマンドプロンプト』の場合、コマンドによって出力される内容は文字列のみでした。

『PowerShell』では、配列などのような高度なデータ構造も利用できるため、複雑な処理が簡単にできるようになっています。

 

『PowerShell』を使った実行例をいくつか挙げてみましょう。

実行例1 - ディレクトリだけを表示する

Get-ChildItem | Where-Object { $_.Mode -match "^d" }

Get-ChildItemでカレント・ディレクトリのファイルを出力します。

Where-Objectはオブジェクトのフィルタを行います。

この例では、

オブジェクトの中のモード列(Mode)の先頭が、 "d" で始まるもの(これがディレクトリになります)だけ

を抽出します。

 

実行例2 - 実行中のサービスを表示する

Get-Service | Where-Object { $_.Status -eq "running" }

この例では、

Get-Serviceでサービスの一覧が出力されます。

その中から

ステータス列(Status)が "Running" のもの(実行中のもの)だけ

が抽出されます。

 

スクリプト言語にある構文も使えるので、さらに高度なことも『PowerShell』で行うことができます。

 

はなこ
いろいろと覚えなくちゃならないみたいだけど、慣れれば『PowerShell』はかなり便利そうね。
今まで『コマンドプロンプト』で苦労してバッチファイルをつくっていた人にとっては、『PowerShell』が登場して嬉しいんじゃないかな。
たろう

スポンサーリンク

まとめ

今回の違いのポイントについて、まとめていきましょう。

ポイント

  • 『コマンドプロンプト』とは、Windows上でMS-DOS互換環境を利用するためのシェルであり、Windowsが登場した頃からあった。
  • 『PowerShell』とは、Windows Vistaから導入された新しいシェルである。
  • 『PowerShell』は、『コマンドレット』と呼ばれるコマンドを利用する。
  • 『PowerShell』は、『.Net Framework』上で動作する。
  • 『コマンドプロンプト』よりも、『PowerShell』のほうが高機能である。

『PowerShell』は、慣れれば、いろいろなことが自動化できる便利なツールです。

Windows Vistaから標準で搭載されているので、興味のある人はぜひ試してみてくださいね。

関連記事

-ITの違い

Copyright© 違いを解説君 , 2019 All Rights Reserved.