PowerShell

PowerShell

【PowerShell】Base64エンコード・デコードの方法|文字列・ファイル・EncodedCommandの罠

PowerShellでBase64エンコード・デコードする方法を実機で確認しながら解説します。ConvertクラスとEncodingでの文字列の変換、文字列を直接渡せずbyte[]が必要な理由、UTF-8とShift-JISで結果が変わること、ファイルのBase64化と復元、powershell.exeの-EncodedCommandがUTF-16LEである罠まで整理します。
PowerShell

【PowerShell】Webからファイルをダウンロードする方法|Invoke-WebRequest・高速化・TLS1.2

PowerShellでWebからファイルをダウンロードする方法を実機で確認しながら解説します。Invoke-WebRequest -OutFileでの保存、$ProgressPreferenceで劇的に速くなる理由、Windows PowerShell 5.1で必要な-UseBasicParsing、HTTPSのためのTLS1.2設定、Invoke-RestMethodでのAPI取得、エラー処理とリトライまで整理します。
PowerShell

【PowerShell】テキストファイルの重複行を削除する方法|順序保持・Get-Uniqueの罠

PowerShellでテキストファイルの重複行を削除する方法を実機で確認しながら解説します。順序を保つSelect-Object -Unique、並べ替えてよいSort-Object -Unique、隣接した重複しか消さないGet-Uniqueの罠、Selectは大文字小文字を区別しSortは区別しない違い、ファイルへの書き戻しとエンコードまで整理します。
PowerShell

【PowerShell】CSVをExcelで開くと文字化けする問題の解決|Export-CsvとUTF-8 BOM

PowerShellのExport-Csvで作ったCSVをExcelで開くと文字化けする問題の解決方法を、実機で確認しながら解説します。Windows PowerShell 5.1では既定で日本語が失われる理由、-Encoding UTF8(BOM付き)でExcelに対応する方法、-Encoding Default(Shift-JIS)での代替、Import-Csvの読み込み側、PowerShell 7との違い、エンコード早見表まで整理します。
PowerShell

【PowerShell】空のフォルダを一括削除する方法|入れ子・隠しファイルの罠と安全な削除

PowerShellで空のフォルダを一括削除する方法を実機で確認しながら解説します。Get-ChildItemとWhere-Objectでの空フォルダの判定、隠しファイルを数える-Forceの必要性、入れ子になった空フォルダを深い順に処理して消す方法、Remove-Itemを-WhatIfで安全に確認する手順、コピーして使える完成版スクリプトまで整理します。
PowerShell

【PowerShell】ファイルを拡張子ごとにフォルダ分けする方法|自動仕分けスクリプト

PowerShellでファイルを拡張子ごとにフォルダ分け(自動仕分け)する方法を実機で確認しながら解説します。Extensionでの拡張子取得とドットの扱い、拡張子ごとのフォルダ自動作成とMove-Item、拡張子なしや大文字小文字への対応、同名ファイルの衝突を連番で回避する方法、移動前の確認まで整理します。
PowerShell

【PowerShell】ファイルの中身から文字列を検索する方法|Select-String(grep相当)

PowerShellでファイルの中身から文字列を検索する方法を実機で確認しながら解説します。Select-Stringの基本、Patternが正規表現になること、リテラル検索の-SimpleMatch、サブフォルダを含む再帰検索、大文字小文字の区別、一致しない行の-NotMatch、各ファイル1件の-Listや前後表示の-Context、行番号やファイル名の取り出しまで整理します。
PowerShell

【PowerShell】robocopyでフォルダを同期・バックアップする方法|/MIR・/L・終了コード

PowerShellからrobocopyでフォルダを同期・バックアップする方法を実機で確認しながら解説します。/Eでのコピー、/Lでのドライラン、/MIRでのミラーリングと削除の注意、終了コードが0〜7まで成功になる理由、$LASTEXITCODEの正しい判定、差分コピーや除外オプションまで整理します。
PowerShell

【PowerShell】古いファイルを削除・移動する方法|更新日(LastWriteTime)で絞り込む

PowerShellで古いファイルを削除・移動する方法を実機で確認しながら解説します。LastWriteTimeとWhere-Object、(Get-Date).AddDays(-30)でのN日前の基準、「より古い」が-ltになる理由、Remove-Itemを-WhatIfで安全に確認してから削除する手順、Move-Itemでの退避、作成日との違いまで整理します。
PowerShell

【PowerShell】重複ファイルを検出する方法|Get-FileHashで中身が同じファイルを探す

PowerShellで重複ファイルを検出する方法を実機で確認しながら解説します。Get-FileHashでハッシュを求め、Group-ObjectとWhere-Objectで中身が同じファイルを探す方法、ファイル名が違っても検出できる理由、サイズで事前に絞り込む高速化、重複を1つ残して削除する安全な手順、SHA256とMD5の違いまで整理します。
PowerShell

【PowerShell】ZIPファイルを圧縮・解凍する方法|Compress-Archive・Expand-Archive

PowerShellでZIPファイルを圧縮・解凍する方法を実機で確認しながら解説します。Compress-Archiveでの圧縮、Expand-Archiveでの解凍、複数ファイルやフォルダの指定、-Pathのフォルダ指定とワイルドカードの違い、既存ZIPに-Forceや-Updateが必要な理由、CompressionLevelでの圧縮率、日本語ファイル名の扱いまで整理します。
PowerShell

【PowerShell】PSCustomObjectの作り方|一覧表示・CSV出力に向くオブジェクト設計

PowerShellのPSCustomObjectの作り方を実機で確認しながら解説します。[PSCustomObject]@{}での作成と順序保持、ハッシュテーブルとの違い(用途・順序・CSV出力)、Add-Memberでのプロパティ追加、ループでのオブジェクト配列作成、Format-Table/Format-List、Export-Csvでのきれいな出力まで整理します。
PowerShell

【PowerShell】ファイル・フォルダ操作|Test-Path・New-Item・Copy-Item・Get-ChildItem

PowerShellのファイル・フォルダ操作を実機で確認しながら解説します。Test-Pathでの存在確認と-PathType、Get-ChildItemでの一覧(-Recurse/-Filter/-File/-Directory)、New-Itemでの作成と-Forceでの親フォルダ作成、Copy-Item/Move-Item、Remove-Itemの注意、Join-Path/Split-Pathまで整理します。
PowerShell

【PowerShell】文字列操作まとめ|-split・部分文字列・Trim・-f 書式・結合

PowerShellの文字列操作を実機で確認しながら解説します。-splitは正規表現で.Split()はそのまま分割する違い、-joinでの結合、Substringと範囲外の例外、インデックスアクセス、Trim、ToUpper/Contains(大文字小文字)、-f演算子での書式(N0・D3・パーセント・通貨・日付)、PadLeftまで整理します。
PowerShell

【PowerShell】関数の作り方|param・戻り値・パイプライン対応・引数の検証

PowerShellの関数の作り方を実機で確認しながら解説します。functionの定義とかっこなしの呼び出し、paramでの引数(型・既定値・位置/名前)、returnしなくても出力が全部戻り値になる罠、Mandatoryとvalidate、processブロックでのパイプライン対応、変数のスコープまで整理します。
PowerShell

【PowerShell】Where-Object・Select-Object・Sort-Objectでデータを絞り込む・選ぶ・並べる

PowerShellのWhere-Object(絞り込み)・Select-Object(選択)・Sort-Object(並べ替え)を実機で確認しながら解説します。スクリプトブロックと簡略構文、Select-Objectと-ExpandPropertyの違い、計算プロパティ、-First/-Last/-Unique、複数キーソート、文字列の数値が辞書順になる罠、3つを組み合わせる実践パイプラインまで整理します。
PowerShell

【PowerShell】ループ完全ガイド|foreach・ForEach-Object・for・while の違いと使い分け

PowerShellのループを実機で確認しながら解説します。foreach文とForEach-Objectの速度・パイプライン・$_の違い、for文とwhile/do-while/do-until、breakとcontinue、ForEach-Object内ではbreak/continueの挙動が異なりreturnでスキップする点、ループの結果を変数に集める方法まで整理します。
PowerShell

【PowerShell】比較演算子と条件分岐(if/switch)|-eq・-like・-match の使い分け

PowerShellの比較演算子と条件分岐を実機で確認しながら解説します。-eq/-ne/-gtの基本、=は代入で-eqが比較、文字列が既定で大文字小文字を区別しない点、-likeと-matchの使い分け、-contains/-in、配列に-eqを使うとフィルタになる罠、-and/-or/-not、if/elseif/elseとswitch(フォールスルー・-Wildcard・-Regex)まで整理します。
PowerShell

【PowerShell】正規表現で文字列を検索・置換する方法|-match・-replace・$Matches・名前付きグループ

PowerShellの正規表現を実機で確認しながら解説します。-matchでの一致判定と$Matchesでの取り出し、名前付きグループ、既定で大文字小文字を区別しない点と-cmatch、-replaceの後方参照と置換文字列のシングルクォート、特殊文字のエスケープ、配列のフィルタ、Select-Stringでのファイル検索まで整理します。
PowerShell

【PowerShell】Get-Dateで日付をフォーマットする方法|書式指定子・加算減算・ファイル名付与

PowerShellのGet-Dateで日付をフォーマットする方法を実機で確認しながら解説します。-Formatと書式指定子、MMとmm・HHとhhの大文字小文字の違い、yyyyMMdd_HHmmssでのファイル名付与とコロン問題、AddDaysでの加算減算、日付の差分、曜日・月名と言語設定まで整理します。