Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

PowerShellを使って、日付フォルダ内のファイルの中から特定の文字列を含むファイルを検索し、結果を日付付きのファイルに出力するスクリプト【Ask_AI】

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

複数フォルダ対応版はこちら

【AIによる概要】

$date = Get-Date -Format "yyyyMMdd"
$targetFolder = ".\$date"
$outputFile = ".\search_result_$date.txt"
$headerText = "【検索結果】「あいうえお」が含まれるファイル一覧"

if (Test-Path $targetFolder) {
# 検索処理を実行し、結果を配列に格納
$matchedFiles = Get-ChildItem -Path $targetFolder -File | 
Select-String -Pattern "あいうえお" | 
Group-Object Path | 
ForEach-Object { $_.Name }

# 1. 一度 UTF-8 でファイルを作成・追記していく
Set-Content -Path $outputFile -Value $headerText -Encoding utf8

if ($matchedFiles) {
Add-Content -Path $outputFile -Value "「あいうえお」が見つかりました。" -Encoding utf8
$matchedFiles | Out-File -FilePath $outputFile -Encoding utf8 -Append
Write-Host "検索が完了しました。ファイルが見つかりました。"
} else {
Add-Content -Path $outputFile -Value "対象ファイルはありませんでした。" -Encoding utf8
Write-Host "検索が完了しました。該当ファイルはありません。"
}

# 2. 【ここがポイント】完成したUTF-8ファイルを読み込み、Shift-JISに変換して上書きする
$content = Get-Content -Path $outputFile -Raw
$sjisEncoding = [System.Text.Encoding]::GetEncoding("shift_jis")
[System.IO.File]::WriteAllText((Convert-Path $outputFile), $content, $sjisEncoding)

} else {
Write-Warning "本日のフォルダ($targetFolder)が見つかりません。"
}
タイトルとURLをコピーしました