以前、業務上でPowerShellについて触れる機会がありコマンドプロンプトとなにが違うの?
具体的にPowerShellだと何ができるの?と思ったので簡単な違いとPowerShellなら出来ることをまとめて紹介していこうと思う。
まず第一にPowerShellって何?コマンドプロンプトとの違いは?
PowerShellとはWindows 7から有効になった機能で、コマンドプロンプトよりもさらに強力で,Microsoftが開発したスクリプト言語およびキャラクターユーザーインターフェイス(CUI) の1つです。
PowerShellと「コマンドプロンプト」はどちらも同じCUIですが、後発のPowerShellは「コマンドプロンプト」が抱えているいくつかの問題点を改良した作りになっているのです。
PowerShellを使おうと思って調べると最初に頭を抱えるのはコマンドレットの規則だと思う。
PowerShell では、コマンドのことを コマンドレット と呼びコマンドレットは、 <動詞>-<名詞> の命名規則に従って定義される
(例) Get-Contentや、Get-Date のような感じ。
たとえばフォルダを移動するコマンドレットは「Set-Location」なのですが
さすがにフォルダ移動するたびに「Set-Location」を入力してると指がつりそうなので、 PowerShell にはデフォルトでエイリアスが定義されている。
「Set-Location」のエイリアスは、「cd」と「chdir」と「sl」が定義されている。
なので、 cd <移動先のパス> でフォルダを切り替えることができる。
cd 以外にも、よく使うコマンドレットには、コマンドプロンプトや Unix のシェルなどでよく使われる名前でエイリアスが定義されている。
これらはPowerShellで「alias」を打うと一覧が表示されるので見てみよう。
さてここまではコマンドプロンプトでも出来ることなのでPowerShellを使う実用性が感じにくいと思うが実際に業務で使用したのはLinuxのシェルのようにスクリプトファイルをあらかじめ作成しておき、それをPowerShellで起動することが出来るのだ。
画像② デスクトップに保存された.ps1ファイル
上の画像①のようなテキストを作成し拡張子を「.ps1」で保存することでPowerShellでの実行を可能にします。
デスクトップ上では画像②のようなファイルになり右クリックで「PowerShellで実行」を選択することで実行できます。
実際に作成した「HelloWorld.ps1」をPowerShellで実行すると下の画像③のようになります。
画像③ PowerShellで実行
無事「HelloWorld」が表示され続くPauseによってウィンドウも閉じずに待機しています,、Enterを押下すると処理終了と共にPowerShellも終了します。
pingやipconfgなどのコマンドの使用ならコマンドプロンプトの方が早い場合もありますがより複雑な作業も出来るPowerShellを覚えて損はないと思います!
今回は簡単な文字列の表示を例に作成しましたが実際にUNIXで使用るようなコマンドは大体効くので上手く使えばウィンドウ上での単純作業をグッと短縮し効率化できると思うので非常に便利なモノです。
またWindowsには標準で搭載されている機能のためプログラミングの練習環境としても非常に有効活用できると思います。
以上,PowerShellとコマンドプロンプトの違いとPowerShellで出来ることをざっと説明してみましたが,PowerShellとは何ぞやと思っておられる方のお役に立てば幸いです。