最終更新日がN日前(7日前、3日前など)のファイルを列挙したかったのでPowerShellで書きました。
検証環境
PS C:\Users\hoge\> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 19041 1023
ソース
検索結果についてはOut-GridView(表形式のダイアログ)で表示します。
param( [string]$targetPath # 検索対象パス ,[int]$expiredDays=7 # 経過日数(デフォルト7日) ) # エラーがあった時点で処理終了 $ErrorActionPreference = "stop" function script:main($targetPath) { # 引数チェック if ($targetPath -eq "") { Write-Host "検索対象のパスを入力してください" exit 1 } $results = (Get-ChildItem -Recurse $targetPath |` Where-Object{$_.Attributes -ne "Directory" -and ($_.LastWriteTime -lt (Get-Date).AddDays(-$expiredDays))}) # ディレクトリは探索対象外、最終更新日が$expiredDaysより前のもののみ対象 if($results.Length -eq 0){ Write-Host "結果がありません" exit 1 } $results | Select-Object FullName, @{label="SIZE(MB)"; expression={"{0:#,0.00}MB" -f ($_.Length / 1MB)}}, LastWriteTime |` # 日時は最終更新日 Sort-Object LastWriteTime |` # 最終更新日の昇順でソート Out-GridView } main $targetPath