スライドショースライドショースライドショー

PowerShellでできることとは?おすすめ理由や始め方も解説!


PowerShellを使うと、何ができるんだろう…
具体的にできることや使用するメリットを知りたい…

コマンドプロンプトを使ったことがあっても、PowerShellを使ったことがない人もいるのではないでしょうか。より便利なのはなんとなくわかるけど、具体的に何ができるのかよくわからない……と思っている人は多いです。

こんにちは! フリーランスエンジニア兼テックライターのワキザカです。

この記事では、PowerShellでできることやおすすめ理由について解説します。PowerShellの始め方も解説しているので、ぜひ参考にしてみてくださいね。

PowerShellでできることとは?

まず、PowerShellでできることについて解説します。

PowerShellとは?

PowerShellは、Wikipediaで以下のように解説されています。

PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェイス (CLI) シェルおよびスクリプト言語である。

Wikipedia

ちょっとわかりづらいので簡単に言うと、Windows管理用のCLIツールです。

CLIとは、すべての操作をキーボードだけで操作する方法です。マウス操作がないので慣れるまで大変かもしれませんが、慣れるとマウス操作の非ではないほど、高速に作業ができます。

ショートカットキーで操作を効率化できるように、操作全てを効率化できるのです。

コマンドプロンプトとの違い

「でも、Windowsには既にコマンドプロンプトがあるよね? PowerShellとの違いはなんだろう…」と思う方もいるかもしれませんね。

コマンドプロンプトと、PowerShellの違いは以下のとおりです。

 コマンドプロンプトPowerShell
使いやすさシステムに対しコマンドを送る
※全部自分で書く
コマンドレットを使って指示を送る
※既にある処理はコマンドレットを使うだけ
起動の速さ速い普通
開発環境の有無

コマンドプロンプトの後継として生まれたのが、PowerShellです。そのため、コマンドプロンプトでできることは、PowerShellでも出来ます。

また、PowerShellは複雑な処理も作りやすいよう、開発環境がついています。

ただ、複雑な処理を作れる分起動がコマンドプロンプトよりも遅いです。そのため、pingテストやIPアドレスを確認するような、ちょっとした確認はコマンドプロンプトのほうが早いです。

PowerShellがおすすめな理由

次に、PowerShellがおすすめな理由について解説します。おすすめ理由は、大きく分けて以下の3つです。

  • おすすめ理由1:環境構築不要で使える
  • おすすめ理由2:Windowsが操作しやすい「コマンドレット」がある
  • おすすめ理由3:ちょっとした自動化処理がすぐに作れる

それぞれ詳しく解説しますね。

①環境構築不要で使える

1つ目は、「環境構築不要で使える」です。

Windows7以降のWindowsパソコンであれば、最初からPowerShellが使えます。そのうえRPAのようなWindows操作の自動化処理を、自分で作れるようになります。

また、複雑な処理でも作りやすいよう、以下のような統合開発環境「Windows PowerShell ISE」も用意されています。


Windows PowerShell ISEの画面

コマンドプロンプトはコードを書いてEnterキーを押すと実行してしまいますが、PowerShellでは「デバッグ」して処理途中で止めながらスクリプトが作れます。

開発効率がグッと高まるので、おすすめです。

②Windowsが操作しやすい「コマンドレット」がある

2つ目は、「コマンドレットがあること」です。コマンドレットとは、Windowsの操作をまとめた指示文のことです。

「コマンドプロンプトでもcdコマンドでフォルダ移動、lsコマンドでディレクトリやファイルの情報を表示できていたし、変わらないんじゃ…」と思った方もいるかもしれません。

ただ、PowerShellのコマンドレットは、コマンドプロンプトに比べて可読性が高いメリットがあります。

たとえば、フォルダ移動 + フォルダ内のテキストファイル(拡張子がtxt)一覧を確認する場合は、以下のようなコマンドの違いがあります。

コマンドプロンプトの場合:
cd C:UsersSiroDesktopコマンドレットテスト
dir *.txt /b
PowerShellの場合:
Set-Location C:UsersSiroDesktopコマンドレットテスト
Get-ChildItem -Name "*.txt"

コマンドプロンプトの場合は、「dirコマンドを使って取得できること」を知らないと使えないですよね。

対してPowerShellは、「Get-ChildItem -Name "*.txt"」を読むだけで、以下のように処理がイメージできます。

  • Get-ChildItem:アイテム(ChildItem)を取得(Get)
  • -Name "*.txt":ファイル名(Name)に「.txt」が含まれるファイル

このように、何をしているコードなのか読みやすいのが、最大の特徴です。書きやすく、読みやすいのでサクサク処理を書けるのです。

③ちょっとした自動化処理がすぐに作れる

PowerShellを使えば、Office365を操作することもできます。以下のような処理を、作れるようになるのです。

PowerShellで作れるツールの例

  • PowerPointのスライドを全て画像化
  • スクショした画像をExcelに自動貼り付け
  • 大量のアドレス宛てにメール自動送信

開発環境も無料なので、書き方を学べばすぐに作れるので魅力的ですね。

PowerShellの始め方【画像付き】

ここからは、以下の流れでPowerShellの始め方について解説します。

  • PowerShellの起動方法
  • サンプルコードの書き方

それぞれ詳しく解説しますね。

PowerShellの起動方法

まず、PowerShellを起動します。起動手順は、以下のとおりです。

1. Windowsボタンをクリック

Windowsボタンをクリック

2. PowerShellを入力し、表示されたPower Shellアプリをクリック

PowerShellを入力し、表示されたPower Shellアプリをクリック

以下のような画面が表示されていれば、OKです。


PowerShellアプリの起動画面

サンプルコードの書き方

初めて利用する方向けに、「Excelを起動して、セルに値を書き込む方法」を解説するサンプルを用意しました。

  • サンプルコードの書き方1:Excelの起動
  • サンプルコードの書き方2:ブックの起動
  • サンプルコードの書き方3:セルに値書き込み

ひとつずつ詳しく解説しますね。

サンプルコードの書き方1:Excelの起動

まず、Excelを起動します。起動するときのコードは、以下のように書きます。

コード:

$excel = New-Object -ComObject Excel.Application # 新しくExcelを起動
$excel.Visible = $true # Excelの起動を見えるように設定

実行結果:

実行結果

「$excel = New-Object -ComObject Excel.Application」でExcelを起動し、画面でExcelが見えるように「$excel.Visible = $true」を設定しています。

ただ、Excelを起動しただけでブックがありません。そこで次に、ブックを起動する方法を解説します。

サンプルコードの書き方2:ブックの起動

ブックを起動するコードは、以下のように書きます。

コード:

$wb = $excel.Workbooks.Add()

実行結果:

実行結果

「Workbooks.Add()」でブックを起動したExcelに追加しています。これで、セルに値を書き込む準備ができました。

次に、セルに値を書き込む方法を解説します。

サンプルコードの書き方3:セルに値書き込み

セルに値を書き込むコードは、以下のように書きます。

コード:

$sheet = $wb.Sheets("Sheet1")  # Sheet1を指定
$sheet.Range("A1") = "PowerShellから書き込み" # Sheet1のA1セルに値を書き込む

実行結果:

実行結果

簡単に、セルに値を書き込むことができました。このように、簡単にOffice365系アプリとも連携し、さまざまな自動化処理が作れるのです。

まとめ

今回は、PowerShellでできること・おすすめ理由や始め方について解説しました。

PowerShellは、使いこなすとRPAのような自動化処理がたくさん作れます。コマンドレットのおかげで処理も書きやすく読みやすいので、学習コストも低いです。

簡単なところからでいいので、ぜひPowerShellを始めてみてくださいね。

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。