「バッチファイルは覚えたけど、もっと複雑な処理がしたい」「PowerShellってよく聞くけど何が違うの?」この記事ではPowerShellとは何か、バッチファイルとの違い、インストール方法、そして最初の一歩を丁寧に解説します。
PowerShellとは何か?
PowerShellはMicrosoftが開発した高機能なシェル(コマンドライン環境)およびスクリプト言語です。2006年にWindows向けに登場し、現在はWindows・macOS・Linuxで動作するクロスプラットフォームの「PowerShell 7(PowerShell Core)」と、Windowsに標準搭載の「Windows PowerShell 5.1」の2系統があります。
最大の特徴は、コマンドの出力が「テキスト」ではなく「オブジェクト」であることです。これにより、コマンドの結果をプログラムのように加工・フィルタリングできます。
バッチファイルとPowerShellの違い
| 比較項目 | バッチファイル(.bat) | PowerShell(.ps1) |
|---|---|---|
| 登場時期 | MS-DOS時代(1980年代〜) | 2006年〜 |
| 実行環境 | cmd.exe(コマンドプロンプト) | powershell.exe / pwsh.exe |
| 出力の型 | テキスト(文字列) | オブジェクト(.NETオブジェクト) |
| できること | 基本的なコマンド実行・ファイル操作 | ほぼなんでも(.NET連携・REST API・GUI操作) |
| 文法の難易度 | 低い(シンプル) | 中〜高(覚えることが多い) |
| エラーハンドリング | errorlevelで簡易対応 | try-catch-finally で本格対応 |
| クロスプラットフォーム | Windowsのみ | Windows・macOS・Linux(PS7以降) |
| 向いている用途 | シンプルな自動化・レガシー環境 | 本格的なシステム管理・複雑な自動化 |
PowerShellのバージョン確認
Windows 10/11には「Windows PowerShell 5.1」が標準搭載されています。スタートメニューで「PowerShell」と検索するとすぐに見つかります。
# バージョン確認
$PSVersionTable
# 主要情報だけ確認
$PSVersionTable.PSVersionPowerShell 7のインストール(推奨)
より新しい機能を使いたい場合はPowerShell 7をインストールします。Windows PowerShell 5.1と並行して使えるため、既存の環境を壊しません。
# wingetでインストール(Windows 10/11推奨)
winget install --id Microsoft.PowerShell --source winget
# インストール後、pwshコマンドで起動
pwshPowerShellの基本操作
# ファイル一覧を表示
Get-ChildItem
Get-ChildItem -Path C:\Windows -Filter *.exe
# 省略形(エイリアス)でも書ける
ls
dir
gci
# テキストを表示
Write-Host "Hello, PowerShell!"
Write-Output "Hello" # パイプラインに出力
# 現在のディレクトリを表示
Get-Location
pwd # エイリアス
# ディレクトリの移動
Set-Location C:\Users
cd C:\Users # エイリアスCmdletの命名規則(動詞-名詞)
PowerShellのコマンド(Cmdlet)は「動詞-名詞」の形式で命名されています。この規則を知っていると、コマンドを覚えやすくなります。
| 動詞 | 意味 | 例 |
|---|---|---|
| Get- | 情報を取得する | Get-Process, Get-Service, Get-ChildItem |
| Set- | 値を設定・変更する | Set-Location, Set-Item, Set-Content |
| New- | 新しく作成する | New-Item, New-Object, New-PSDrive |
| Remove- | 削除する | Remove-Item, Remove-Service |
| Start- | 開始・実行する | Start-Process, Start-Service |
| Stop- | 停止する | Stop-Process, Stop-Service |
| Invoke- | 実行・呼び出す | Invoke-WebRequest, Invoke-Command |
| Write- | 出力する | Write-Host, Write-Output, Write-Error |
ヘルプの使い方
# コマンドのヘルプを表示
Get-Help Get-Process
Get-Help Get-Process -Examples # 使用例を表示
Get-Help Get-Process -Full # 詳細ヘルプを表示
# コマンドを検索する
Get-Command *Service* # "Service"を含むコマンドを検索
Get-Command -Verb Get # Get動詞のコマンド一覧最初にPowerShellを触ったとき、「Get-ChildItem」「Set-Location」など長ったらしい名前に戸惑いました。でも「ls」「cd」などのエイリアスが使えると知ってから急に親しみやすくなりました。まずエイリアスで慣れて、徐々に正式名称を覚えていくのがおすすめです。
hobbyshift管理人
まとめ
- PowerShellはテキストではなくオブジェクトを扱う高機能なシェルで、バッチファイルの上位互換にあたる
- Windows 10/11には5.1が標準搭載。wingetで7をインストールすれば最新機能が使える
- Cmdletは「動詞-名詞」形式で命名されており、Get-Help・Get-Commandでコマンドを調べられる
- ls・cd・dirなどのエイリアスが使えるので、コマンドプロンプトやLinuxの感覚で入門できる
- 次の記事では変数・データ型・演算子など基本構文を学ぶ



コメント