PowerShell GUI検索アプリに「複数フォルダの一括検索」機能を追加!


通常、複数のフォルダを検索する場合は、1つずつ指定していく必要がありますが、複数のフォルダを一度に指定できるようにすると、作業の効率化が図れます。
今回は、複数のフォルダを一度に指定して検索できるようにしてみましょう。


今回追加する機能

機能内容
複数フォルダ指定複数のフォルダを一度に指定し、まとめて検索を実行する
保存と呼び出し機能よく使うフォルダリストを保存し、後で呼び出して再利用する

複数フォルダ指定の実装方法

1. フォルダリストを入力できるようにフォームに「フォルダ選択」ボタンを追加

ユーザーが複数のフォルダを選べるように、FolderBrowserDialog を利用してフォルダ選択を行います。

# フォルダ選択ダイアログを複数回表示してリストに追加
$folderList = @()
$folderDialog = New-Object System.Windows.Forms.FolderBrowserDialog

# 複数フォルダ選択
while ($folderDialog.ShowDialog() -eq 'OK') {
    $folderList += $folderDialog.SelectedPath
    # 追加のフォルダを選びたい場合、再度フォルダ選択ダイアログを表示
    $folderDialog.Reset()
}

2. 選択された複数フォルダを検索対象にする

# 複数フォルダに対してファイル検索
foreach ($folder in $folderList) {
    $files = Get-ChildItem -Path $folder -Recurse -File -Filter "*.txt"  # 例: .txt ファイル検索
    foreach ($file in $files) {
        # 検索結果を表示または処理
        Write-Host "Found: $($file.FullName)"
    }
}

フォルダリストを保存する方法

1. フォルダリストをファイルに保存

# フォルダリストをJSON形式で保存
$folderList | ConvertTo-Json | Set-Content -Path "folderList.json"

2. 保存したフォルダリストを読み込む

# 保存されたフォルダリストを読み込み
if (Test-Path "folderList.json") {
    $folderList = Get-Content "folderList.json" | ConvertFrom-Json
}

使用例(実際の画面イメージ)

  1. ユーザーが「フォルダ選択」ボタンを押す
  2. ダイアログでフォルダを選び、選択したフォルダがリストに追加される
  3. 「検索開始」ボタンを押すと、リスト内の複数のフォルダを対象に検索が実行される

まとめ

複数フォルダ一括検索フォルダリストの保存・読み込み機能を実装することで、よく使うパターンを効率よく再利用できるようになります。
これにより、検索作業の効率化が大幅に進み、業務の時間短縮にもつながります。


次回予告

次回は、**「検索結果のエクスポート(CSV/Excel形式)」**機能を追加し、さらに業務で使いやすいツールにしていきます!


コメント

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