一括でファイルの内容を検索したい

おはようございます。すぎやまです。

この記事では、一括でファイルの内容を検索する方法を紹介します。

まず、結論を記載します。

一括でファイル内容検索

  • ps1ファイルを使用する場合、「-match」コマンドを使用

下記、詳細を説明します。

Excelの内容検索

最初にファイルを作る手間がかかりますが、
ps1ファイルを使用することで確認の手間がかからず作業を完了出来ます。

下のコードは、フォルダにあるエクセルファイルの内容を検索するコードです。

# COMオブジェクトを作成してExcelを起動
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false  # Excelウィンドウを非表示にする

# スクリプトファイルのディレクトリをカレントディレクトリに設定する
Set-Location -Path $PSScriptRoot

# 検索する単語の入力
$keyword = Read-Host "検索する単語を入力してください"

# 現在のディレクトリ内のExcelファイルを検索する
$files = Get-ChildItem -Path $PSScriptRoot -Filter *.xlsx
foreach ($file in $files) {
    $workbook = $excel.Workbooks.Open($file.FullName)
    foreach ($worksheet in $workbook.Worksheets) {
        $rows = $worksheet.UsedRange.Rows.Count
        $cols = $worksheet.UsedRange.Columns.Count
        for ($i = 1; $i -le $rows; $i++) {
            for ($j = 1; $j -le $cols; $j++) {
                $cell = $worksheet.Cells.Item($i, $j)
                $cellText = $cell.Text
                if ($cellText -match $keyword) {
                    Write-Host "File: $($file.FullName)"
                    Write-Host "Cell: $cellText"
                    Write-Host "--------------------------"
                }
            }
        }
    }
    $workbook.Close()
}

# Excelアプリケーションを終了
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
Remove-Variable excel

Write-Host "検索が完了しました。"

使用方法はこちらの記事をご覧ください。
また、別の記事ではWordファイルのPDF化も紹介しております。こちらも併せてご覧ください。

ファイルは一度作ってしまえば使いまわせるので、非常におすすめです。

その他の作業を効率化したい方へ

今回はファイル名変更の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。

こちらの記事に纏めておりますので、是非ご一読ください!

以上、最後まで読んでいただきありがとうございました。

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