🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

PowerShellとは?Windowsユーザー必携の最強シェルを徹底解説

これまでのBash入門シリーズでは、macOSやLinuxで標準的に使われるBashシェルに焦点を当ててきました。しかし、「普段使っているのはWindowsなんだけど…」と感じているWebクリエイターの方も多いはずです。ご安心ください!Windowsには、古くからあるコマンドプロンプト(黒い画面)を遥かに凌駕する、超強力なシェルが標準で搭載されています。それが、今回ご紹介するPowerShell(パワーシェル)です。

PowerShellは、単なるコマンド実行ツールではありません。Windowsのあらゆる設定を自動化し、複雑なタスクを数行のコードで片付けてしまう、まさに「魔法の杖」のような存在です。特に、Web開発でサーバーを管理したり、日々の作業を効率化したりする上で、その力は絶大です。

この記事では、「PowerShellって何?」「コマンドプロンプトと何が違うの?」という初心者の方の疑問に答えながら、その基本的な使い方と魅力を、コピペで動かせるサンプルと共に分かりやすく解説します。Windowsユーザーなら誰もが持っているこの最強の武器、今日からあなたも使いこなしてみませんか?


PowerShellの正体 - Windowsから生まれた最強のシェル

PowerShellとは、Microsoftが開発した、Windowsの管理・自動化に特化したコマンドラインシェルであり、スクリプト言語でもあります。昔ながらのコマンドプロンプトが電卓だとしたら、PowerShellはExcelのようなものです。どちらも計算はできますが、扱えるデータの種類や、できることの幅が全く違います。

最大の違いは「オブジェクト」を扱うこと

コマンドプロンプトとPowerShellの決定的な違いは、コマンドが返す情報の「形式」にあります。

この「オブジェクトを扱う」という性質が、PowerShellを単なるコマンドラインツールから、強力な自動化プラットフォームへと昇華させているのです。


PowerShellの力を体感!パイプラインでオブジェクトを操る

言葉で説明するよりも、実際に動かしてみるのが一番です。PowerShellの真価は、コマンド同士を「パイプライン `|`」で繋いだときに発揮されます。オブジェクトがベルトコンベアのように次のコマンドへ渡され、加工されていく様子を見てみましょう。

まず、Get-Processというコマンドで、現在コンピューターで動いているプロセスの一覧を取得します。PowerShellのコマンドは動詞-名詞という分かりやすい形式になっているのが特徴です。

Get-Process

たくさんのプロセスが表形式で表示されましたね。これがオブジェクトの集まりです。


次に、この結果をパイプでWhere-Objectに渡し、「プロセス名(ProcessName)が'chrome'であるもの」だけを絞り込んでみましょう。$_は、パイプから渡されてきた一つひとつのオブジェクトを指します。

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' }

Chromeに関するプロセスだけが表示されました。テキストではなくオブジェクトだからこそ、ProcessNameというプロパティを指定して簡単に絞り込めるのです。


さらに、絞り込んだ結果をSort-Objectに渡し、メモリ使用量(WS)の多い順に並べ替えてみましょう。

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' } | Sort-Object -Property WS -Descending

このように、コマンドを繋いでいくだけで、まるでデータを自在に操るデータベースのように、複雑な情報の抽出や加工ができてしまいます。これがPowerShellの力です。


基本的なコマンド(コマンドレット)を使ってみよう

PowerShellのコマンドは、正式にはコマンドレット (Cmdlet) と呼ばれます。ここでは、Bashやコマンドプロンプトでお馴染みの操作を、PowerShellのコマンドレットで実行する方法を紹介します。多くのコマンドレットには短い「エイリアス(別名)」が用意されているので、lscdといった慣れたコマンドもそのまま使えます。

場所の移動 (pwd, cd, sl)

現在地を確認するにはGet-Location、移動するにはSet-Locationを使います。

# 現在の場所を表示 (エイリアス: pwd)
Get-Location

# C:\Users ディレクトリに移動 (エイリアス: cd, sl)
Set-Location C:\Users

一覧の表示 (ls, dir, gci)

ファイルやフォルダの一覧を表示するにはGet-ChildItemを使います。

# カレントディレクトリの中身を表示 (エイリアス: ls, dir, gci)
Get-ChildItem

オブジェクトの強みを活かして、特定の種類のファイルだけを再帰的に(サブフォルダの中まで)探すことも簡単です。

# 現在の場所から下のすべての.cssファイルを検索
Get-ChildItem -Recurse -Filter "*.css"

ファイルとフォルダの作成 (ni)

新しい項目(ファイルやフォルダ)を作成するにはNew-Itemを使います。

ファイルの作成:

New-Item -Path ".\new-file.txt" -ItemType File

フォルダの作成:

New-Item -Path ".\new-folder" -ItemType Directory

ファイル内容の読み書き (cat, gc, sc)

ファイルの内容を読み込むにはGet-Content、書き込むにはSet-Contentを使います。

ファイルへの書き込み:

"Hello from PowerShell!" | Set-Content -Path ".\new-file.txt"

ファイル内容の読み込み (エイリアス: cat, gc):

Get-Content -Path ".\new-file.txt"

ファイルとフォルダの削除 (rm, del, rmdir)

ファイルやフォルダを削除するにはRemove-Itemを使います。この操作は元に戻せないので、実行には十分注意してください。

Remove-Item -Path ".\new-file.txt"

フォルダを中身ごと削除するには-Recurseオプションが必要です。

Remove-Item -Path ".\new-folder" -Recurse

まとめ

今回は、Windowsに標準搭載されている強力なシェル、PowerShellの世界への入り口をご案内しました。最初は見慣れないコマンドレットに戸惑うかもしれませんが、その本質を理解すれば、これほど頼りになるツールはありません。

Web制作の現場では、ローカルのWindows環境で作業し、本番環境のLinuxサーバーへデプロイするという流れが一般的です。PowerShellを使いこなすことでWindowsでの作業を自動化・効率化し、WSLを通じてLinux環境もシームレスに扱えるようになれば、まさに鬼に金棒です。

今日の記事で、PowerShellの魅力とパワフルさの一端を感じていただけたなら幸いです。次回の記事では、このPowerShellを最新版にアップデートする方法や、macOS/Linuxへインストールする手順を解説します。

【初心者向け】PowerShellのインストールと起動方法(Windows / Mac / Linux)