PowerShellはWindows 7から有効になった機能です。コマンドプロンプトよりもさらに強力で,スクリプトを書くための言語として導入されました。
コマンドプロンプトで慣れ親しんできた方も多いかも知れませんが,Windows 7以降,PowerShellはいっそう重要なツールになってきました。Windows 10ではスタートボタンを右クリックしたときに,コマンドプロンプトではなくPowerShellがデフォルトで出てくるようになっているほどです。
PowerShellは従来のコマンドプロンプトよりも複雑ですが,それと同時に非常にパワフルな機能も備わっています。コマンドプロンプトは,Linuxのシェルのようなことはほとんどできませんが,PowerShellは見劣りしません。しかも,コマンドプロンプトで使えるコマンドは,ほぼすべてPowerShellでも利用可能です。
PowerShellはコマンドプロンプトとどのように違うのか
実際には,PowerShellはコマンドプロンプトとは全くことなります。コマンドレット(cmdlets)と呼ばれる独自のコマンドを用います。コマンドレットとは,PowerShellで利用可能なコマンド群のことで,手元のPowerShell環境で確認した限りでも954種類のコマンドが用意されています。
(おまけ)コマンドレットの総数を確認する方法
(get-command -commandtype cmdlet).length
また,コマンドプロンプトでは,レジストリやWMIにアクセスすることは難しいですが,PowerShellでは標準的にサポートされており,システムの管理業務に役に立ちます。
さらに,PowerShellはパイプ処理を使うことができます。つまり,一つのコマンドレットで取得した値をパイプでつないで,別のコマンドレットに渡すという事が可能です。また,PowerShellで扱われるものは,戻り値も含めてほとんどすべてオブジェクトですので,プログラミングをするのに向いていると言えます。
どんなときにPowerShellを使うと良いか
では,どんな時にPowerShellを使う方が良いと言えるでしょうか。
もし,pingとかipconfigぐらいしか使わないのであれば,コマンドプロンプトで充分です。むしろコマンドプロンプトの方が,軽量で起動が早いので使い勝手が良いかもしれません。
しかし,PowerShellはもっと強力なツールであり,使い方によっては非常に便利です。
例えば,フォルダ内のファイルを一括でリネームしたいという場合があるかもしれません。そのような時,PowerShellだと以下のような1行で実現できます。
Dir | Rename-Item -NewName {$.name -replace "aaa","bbb"}
とはいえ,PowerShellを書くためには少し慣れが必要ですので,普通のユーザーがPowerShellでメリットを得られることは少ないかも知れません。
それよりも,システムを管理している人が,何らかの処理を自動化したいと思っているのであれば,そのような場合にPowerShellはうってつけです。
PowerShellはコマンドプロンプトと同じコマンドを使える
コマンドプロンプトで使えるほとんどのコマンドが,PowerShellでも利用可能です。なぜなら,PowerShellの内部でエイリアスが設定されており,例えばSet-Locationというコマンドレットにはcdという従来のコマンドが対応するようになっています。また,Get-ChildItemはコマンドプロンプトでいうdirに相当する,という具合です。
エイリアスがどのように対応しているのかは,Get-Aliasコマンドで確認できます。
Get-Alias dir
以上,PowerShellとコマンドプロンプトの違いをざっと説明してみましたが,PowerShellとは何ぞやと思っておられる方のお役に立てば幸いです。
これからPowerShellを学ぶ方は,【保存版】PowerShellおすすめ入門書籍3選もご覧ください。
コメント
[…] 参考:PowerShellとコマンドプロンプトの違いを簡単に解説します […]