Windowsの自動化やサーバ運用で大活躍するPowerShell。
「使い始めたいけど、基本構文がよく分からない…」という人向けに、この記事ではPowerShellの基礎構文を一気に整理します。
以下の内容を押さえることで、シンプルなスクリプトはすぐ書けるレベルになります。
✅ PowerShellスクリプトの基本ルール
| 内容 | 説明 |
| 拡張子 | .ps1 |
| コメント | # コメント |
| 大文字小文字 | 区別しない (例: $Value と $value は同じ) |
| 変数宣言 | $変数名 = 値 |
| 実行ポリシー変更 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
💡 セキュリティのため、実行ポリシー設定は理解したうえで操作しましょう。
🧮 変数の基本
ポイント
🔁 配列(リスト)
📦 ハッシュテーブル(連想配列)
✅ 条件分岐(If / ElseIf / Else)
よく使う比較演算子
| 演算子 | 意味 |
| -eq | 等しい |
| -ne | 等しくない |
| -gt | より大きい |
| -lt | より小さい |
| -ge | 以上 |
| -le | 以下 |
🔁 ループ制御
for文
foreach文
🔄 while / do-while
📦 関数の定義
📎 パイプラインとフィルタ
| コマンド | 説明 |
| Get-Process | プロセス一覧取得 |
| Where-Object | 条件絞り込み |
| Sort-Object | 並び替え |
| Select-Object | 指定列のみ取得 |
💡 実用例:ファイル一覧を取得して出力
🎯 まとめ
PowerShellの基本構文は次の通り:
まずは小さな処理から試し、Windows作業をどんどん自動化していきましょう!
❓ よくある質問(FAQ)
Q. PowerShell ISEとWindows Terminalどっち使うべき?
A. 基本は Windows Terminal + VS Code を推奨。補完機能が強いです。
Q. 管理者権限はいつ必要?
A. ファイル操作・レジストリ操作・サービス制御等で必要になります。
PowerShellでのテキスト処理で、もっと効率良く抽出・置換したいと思ったことはありませんか?
そんなときに威力を発揮するのが**正規表現(Regex)**です。
ログ解析、ファイル名整形、データ抽出、フォーマット変換など、
業務効率が劇的に変わる超重要スキルです。
本記事では、PowerShell × 正規表現の基本から実務で使えるテクニックまで徹底解説します。
✅ 正規表現の基本:PowerShellでの使い方
マッチ判定 -match
否定パターン
文字列からValue取得
$matches[1] にキャプチャした文字列が入る
✅ よく使う正規表現パターン
| 用途 | パターン | 例 |
| 数字 | \d+ | 1234 |
| 英字 | [A-Za-z]+ | UserName |
| メール | \w+@\w+\.\w+ | test@mail.com |
| 日付 | \d{4}/\d{2}/\d{2} | 2025/01/10 |
| 任意の文字列 | .*? | 全部 |
✅ 実践例:ログからIPアドレスだけ抽出
出力
✅ 置換:-replaceでデータ整形
電話番号のハイフン削除
メールのドメインを隠す
✅ ファイル名の一括リネーム
大量ファイルの命名変換で超便利
✅ キャプチャした値を使った置換
日付フォーマット変換(YYYY/MM/DD → YYYY-MM-DD)
✅ 否定・条件抽出の例
IP行だけ抽出
エラー行だけ取得
“Warning”を含まない行
✅ 欲しいパターンはGitHub Copilotじゃなく、正規表現辞書を使え!
以下のキーワードで検索すると精度高い例が見つかります👇
✅ まとめ
| 機能 | PowerShellでのコマンド |
| マッチ判定 | -match / -notmatch |
| 抽出 | $matches[] |
| 検索 | Select-String |
| 置換 | -replace |
| ファイル検索 | Get-ChildItem + Select-String |
正規表現を使いこなすと、
データ処理・ログ解析・自動化スクリプトが一気にプロレベルになります。
Windows環境でフォルダ内のファイル一覧を取得したい場面は多々あります。例えば、定期的なファイル管理や監査用の記録、またはバックアップ作業のために一覧をエクスポートしたい場合です。
PowerShellを使えば、簡単にフォルダ内のファイル一覧を取得し、そのままCSV形式で保存することができます。
この記事では、PowerShellでフォルダ内のファイル一覧を取得し、CSVに出力する方法を解説します。
基本コマンド
まずは基本となるコマンドです。
以下の例では、C:\Test フォルダ内のファイル一覧を取得し、filelist.csv に出力します。
各コマンドの意味
-
Get-ChildItem "C:\Test"
指定フォルダ内のファイルやフォルダを取得します。gci や dir と省略可能。
-
Export-Csv
取得結果をCSVに変換して保存します。
-
-NoTypeInformation
CSVの先頭に不要な型情報行を出力しないようにします。
-
-Encoding UTF8
CSVファイルの文字コードをUTF-8に指定します(文字化け防止)。
ファイルのみ取得する場合
フォルダ名は不要で、ファイルだけを取得したい場合は -File オプションを指定します。
サブフォルダも含めて取得する場合
サブフォルダ内のファイルもまとめて一覧化するには -Recurse を付けます。
|
|
Get-ChildItem "C:\Test" -File -Recurse | Export-Csv -Path "C:\Test\filelist_all.csv" -NoTypeInformation -Encoding UTF8 |
出力内容を絞り込む
CSVに出力する項目を指定することも可能です。例えば、フルパス、サイズ、更新日時 だけを出力する場合:
実行例イメージ
出力されるCSVファイルをExcelで開くと、以下のように一覧が表示されます。
| FullName |
Length |
LastWriteTime |
| C:\Test\document1.txt |
1234 |
2025/09/17 10:30:00 |
| C:\Test\image.png |
45678 |
2025/09/16 15:20:00 |
| C:\Test\subfolder\report.docx |
9876 |
2025/09/15 09:10:00 |
まとめ
-
Get-ChildItem でフォルダ内のファイル一覧を取得できる
-
Export-Csv を組み合わせることで、簡単にCSVへ出力可能
-
-File、-Recurse、Select-Object を使えば用途に合わせて柔軟に一覧化できる
PowerShellを使えば、手作業でリスト化する手間を省き、自動化できるのでぜひ活用してみてください。
「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。