PowerShell を「コマンドを暗記する道具」ではなく「調べ方が分かれば自走できる道具」として身につけるための資料です。JavaScript・Java・C#・VBA いずれかの経験を前提に、他の言語と違う部分だけを重点的に扱います。
本編は順に読む資料ですが、付録は必要になったときに引くものです。
| 目的 | 読む順序 | 目安 |
|---|---|---|
| とにかく動かしたい | 02 → 03 → 10 の課題2 | 1時間 |
| PowerShell らしい書き方を知りたい | 05(山場)→ 04 → 06 | 2時間 |
| 既存スクリプトを直したい | 07 → 08 →(必要に応じて 04) | 1.5時間 |
| 業務を自動化したい | 01〜09 を順に → 09 のパターンを改造 | 1日 |
| 勉強会で使いたい | 4. 勉強会で使う場合 → 10 | — |
Get-Member」の2つが分かれば、あとは実行環境が教えてくれます。この資料に載っていないコマンドも自力で扱えるようになります。
| 表記 | 意味 |
|---|---|
| pwsh 7 | PowerShell 7 以降でのみ使える/挙動が異なる |
| 5.1 | Windows PowerShell 5.1 固有の注意点 |
| (バッジなし) | 両方で同じように動く |
| 「PowerShell が初めての人へ」 | JS 以外の言語経験者向けの補足。読み飛ばして構わない |
C:¥Users | 表示は円記号だが、実体はバックスラッシュ。コピペすれば正しく動く |
ここにはよくある入口だけを並べています。網羅した索引は A1. 逆引き にあり、症状・コマンド名・JavaScript・用語の4つの入口から引けます。
| 症状・やりたいこと | 参照先 |
|---|---|
| 日本語が文字化けする | 02.2 BOM とバージョンの関係 / 07.3 読み書きの文字コード |
| スクリプトが実行できない | 03.2 実行ポリシー |
| ダブルクリックで動かしたい | 02.4 cmd ランチャー |
| 5.1 と 7 のどちらで動いているか知りたい | 03.1 $PSVersionTable |
| 比較がうまくいかない(大文字小文字) | 04.3 -ceq / -creplace |
| パスにバックスラッシュを書きたい | 04.2 エスケープはバッククォート |
| コマンドの結果から値を取り出せない | 05.2 Get-Member |
| 知らないコマンドの使い方を調べたい | 05.5 Get-Command / Get-Help |
| 関数の戻り値に余計な値が混ざる | 06.3 戻り値の落とし穴 |
| 配列が1件のとき壊れる | 06.3 return ,$a |
Get-ChildItem が 0 件しか返さない | 07.2 0 件になる3つの理由 |
| JSON の一部が欠ける | 07.4 -Depth の既定は 2 |
try/catch が効かない | 08.1 非終了エラー |
| 外部コマンドの失敗を検知したい | 08.3 $LASTEXITCODE |
| ログを集計したい | 09.1 ログの集計 |
| 安全に一括リネームしたい | 09.2 -WhatIf |
| タスクスケジューラから動かしたい | 09.4 無人実行 |
| Office ファイルを PDF にしたい | 12.2 Word・Excel・PowerPoint の PDF 化 |
| EXCEL.EXE / WINWORD.EXE が残る | 12.3 ReleaseComObject |
| ループが遅い。C# で書き直したい | 11.6 使いどころの見極め |
何が返るか分からない → | Get-Member
中身の値を見たい → | Select-Object -First 1 | Format-List *
コマンドを忘れた → Get-Command *keyword*
使い方が分からない → Get-Help <コマンド> -Examples
0 件しか返らない → 07.2 の3つの理由を確認
文字化けする → 読み書き両方の -Encoding を確認
エラーが捕まらない → -ErrorAction Stop を付ける
| ファイル | 内容 |
|---|---|
| docs/plan/構成案 | 資料を作る側の文書。各章に何を書いたかの設計記録と、主催者向けの準備、資料のビルド手順 |
| docs/A1-逆引き | 付録。4つの入口から本編へ引く索引。コマンド一覧は自動生成 |
| docs/A2-テンプレ集 | 付録。コピーして使う雛形6種 |
| docs/A3-モジュール | 付録。業務で使えるモジュール厳選8本と、導入・オフライン配布 |
この資料は全5回・1回90分の勉強会を想定して作ってあります。1人で読む場合はこの章を飛ばして構いません。
| 回 | 扱うファイル | ゴール | ハンズオン |
|---|---|---|---|
| 第1回 | 01・02 | PowerShell が何を解決する道具かを言える | BOM なしで文字化けを再現する |
| 第2回 | 03・04 | 自分の PC でスクリプトを実行できる | 環境構築 + Hello World の ps1 と cmd ランチャー |
| 第3回 | 05 | Get-Member で自力で調べられる | プロセス一覧をメモリ順に並べて上位5件を出す |
| 第4回 | 06・07 | 関数に切り出したスクリプトが書ける | 指定フォルダのファイル一覧を CSV 出力 |
| 第5回 | 08・09・10 | 実務スクリプトを1本完成させる | ログ集計スクリプトを課題形式で作る |
Restricted のままだと第2回以降が進みません(03.2)ハンズオンの課題・解答例・つまずきどころは 10. ハンズオン課題 にまとまっています。5回分の課題がそのまま入っているので、進行役はこれを見ながら進められます。