PowerShell GUI検索アプリに「拡張子フィルタ」と「正規表現検索」機能を追加!


日常業務で「Excelファイルだけ見たい」「一部のファイル名だけ抽出したい」なんてこと、ありますよね?
今回は、検索機能をさらに強化して以下の2つを実現します。


新たに追加する機能

機能内容
拡張子フィルタ`.xlsx` や `.log` など、指定した拡張子だけを検索対象にする
正規表現検索ファイル名に対して柔軟なパターンマッチが可能

フォームへの追加要素

  • 「拡張子」入力欄(例:*.xlsx*.txt
  • 「正規表現を使う」チェックボックス
  • 正規表現入力欄(例:^report_.*\.xlsx$

拡張子フィルタのコード例

# 例:.txtや.xlsxなどの拡張子で絞り込み
$extensionFilter = $txtExt.Text  # ユーザー入力欄
$files = Get-ChildItem -Path $folder -Recurse -Include $extensionFilter -File

$txtExt.Text*.xlsx などが入っている想定です。


正規表現フィルタのコード例

# 正規表現チェックONならフィルタ適用
if ($chkRegex.Checked -and $txtRegex.Text -ne "") {
    $regex = $txtRegex.Text
    $files = $files | Where-Object { $_.Name -match $regex }
}

$chkRegex は「正規表現を使う」チェックボックス、$txtRegex は入力欄です。


実用パターン例(正規表現)


入力 結果
^log_.*\.txt$ 「log_2023.txt」「log_error.txt」などのログファイルだけ検索
.*(請求|支払).* 「請求書一覧.xlsx」「支払データ.csv」などを抽出
^[0-9]{8}_.* 「20240101_report.xlsx」など、日付8桁から始まるファイルにヒット

実装してみた効果

  • 拡張子指定で余計なファイルを除外できる
  • 正規表現で柔軟な抽出ができ、特定形式のファイル名を一括検索可能
  • 業務特化の「ファイル抽出フィルター」が簡単に作れる!

まとめ

今回追加した拡張子・正規表現の絞り込みで、検索精度と使いやすさがグッと向上しました。業務ごとのルールに合わせた柔軟な絞り込みができ、実用性も大幅アップ!


次回予告

次回は、検索結果に「ファイルアイコン」を表示して視認性をアップさせたり、「ファイル種別別に色分け表示」するような、ビジュアル向上系の工夫を紹介していきます!


コメント

タイトルとURLをコピーしました