Categories: Windows

Windows PowerShellの使い方と基礎、バッチファイルとの比較

マイクロソフトが開発した新しいシェルとして「Powershell」があります。コマンドプロンプトと似たようなウィンドウが表示されるので、あまり違いを意識せずに使っている方も多いかもしれません。

本ブログでは、今までWindowsのバッチファイルを用いて実現できることを多く紹介してきました。

ファイル管理 ファイル・フォルダの名前変更(rename) ファイル・フォルダのコピー(xcopy) フォルダ作成(mkdir) ...

バッチファイルでは「.bat」形式のファイルを作り、そこにスクリプトを記述することで、コマンドプロンプト上でさまざまなことが実現できます。実行も「.bat」形式のファイルをクリックするだけで使えて非常に簡単です。

一方、WindowsのPowershellは、従来のバッチファイルで用いるコマンドプロンプトではできない複雑で多様なことが実現できます。例えばファイルをZIP形式に圧縮したり、パワーポイントのスライドを画像形式で保存したり、これらはコマンドプロンプトでは実現できないものです。

本記事では、Windowsでバッチファイルでは実現できない、さらに高度なことを自動化するための第一歩として、Powershellとコマンドプロンプトの違いを紹介します。

さらに、簡単なPowershellのスクリプトファイルを作成して、実際に実行してみることで、Powershellを用いたスクリプト開発の方法について理解を深めます。

Powershellの開き方

一番簡単な方法は、エクスプローラー上で[Shift]キーを押しながらマウス右クリックをし、表示されるメニューから「PowerShellウィンドウをここで開く」を選択することです。

あるいは、検索窓に「Powershell」と打ち込むとPowershellが出てきますので、この方法でも良いでしょう。

起動すると以下のように、デフォルトだと少し紺色掛かったウィンドウが出てくると思います。

Powershellとコマンドプロンプト(バッチファイル)の違い

まず、大きな違いとしてはPowershellの方がコマンドの文法は複雑ですが、多くの機能が備わっているということです。

バッチファイルで実現できないけれどもPowershellで実現できることは多くありますが、その逆は少ないです。実現できることの柔軟さ・多様さという観点ではPowershellが優れています。

一方、コマンドプロンプトの方が軽量で起動が早いと言われています。

また、Powershellでもバッチファイルのような「.ps1ファイル」と呼ばれるファイルを作成して、ファイルにスクリプトを記述することができます。しかしながら、「.batファイル」はクリックするだけで実行できますが、ps1ファイルはそうではありません(バッチファイルと組み合わせるなど工夫次第では可能)。そのため、例えばコンピュータの扱いに慣れていない方にスクリプトを配布して使ってもらう場合、バッチファイルの方が簡単です。

ps1ファイル(PowerShellスクリプト)の作り方

作り方はバッチファイルと同じで、メモ帳などの適当なテキストエディタでスクリプトを記述し、「.txt」を「.ps1」に変更するだけでスクリプトを作成できます。

例えば、以下のスクリプトを作成したとします。バッチファイルであれば、ダブルクリックするだけで実行できますが、ps1ファイルではダブルクリックしても通常実行はできません。

Write-Host "Hello, World!"
pause

ps1ファイル上で左クリックをすると、以下のように「PowerShellで実行」という選択肢が出てきますので、これで実行することができます。

実行すると、以下のように表示されました。

1行目の「Write-Host “Hello, World!”」がウインドウに文字を表示するスクリプトです。

2行目の「pause」はバッチファイルにもありますが、クリック待ちを発生させるもので、これがないと一瞬でウィンドウが閉じてしまうことがあるため挿入しています。

PowerShellスクリプトも、自分で作成したり、実行したりすることがあまり難しくないということがわかっていただけると思います。

Haruoka