ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

過去の日付のテキストファイルを一括作成するPowerShellスクリプト

趣旨

ログファイルの定期削除ツールの開発をすることになって、作成日時や更新日時が過去のファイルが大量に必要になりました。

なので、掲題のPowerShellスクリプトを作成しました。

Powershell ソースコード

#フォルダのパスを定義
$logFolderPath = "C:\work\Logs\"

#フォルダを作成
New-Item $logFolderPath -ItemType Directory

#何日分のファイルを作成するか
$days = 365

for($i=0;$i -lt $days;$i++)
{
    #ファイルパスを定義
    $today = Get-Date
    $targetDay = $today.AddDays(-$i)
    $logFile = $logFolderPath + "Log_hogehoge_" + $targetDay.ToString("yyyyMMdd") + ".txt"

    #本文
    $message = "dummy"

    #テキストファイルを出力
    Write-Host $targetDay.ToString("yyyy/MM/dd")
    $message | Out-File $logFile -Append -Encoding UTF8

    #作成日時、更新日時、アクセス日時を更新
    Set-ItemProperty -Path $logFile -Name CreationTime   -Value $targetDay.ToString("yyyy/MM/dd")
    Set-ItemProperty -Path $logFile -Name LastWriteTime  -Value $targetDay.ToString("yyyy/MM/dd")
    Set-ItemProperty -Path $logFile -Name LastAccessTime -Value $targetDay.ToString("yyyy/MM/dd")
}

実行結果のイメージ
f:id:wataruf01:20220321233340p:plain