PowerShell 保存期間超過ファイル削除関数
PowerShellで保存期間を超過したファイルを削除する関数を作成してみました。
まだテストしていないので、ちゃんと動くかどうかは不明ですが。。。。
#
# targetPathで指定された接頭辞prefixのファイルに大して、term期間を超過した
# ファイルを削除する。
function LogFileCleanDay([String]$targetPath, [String]$prefix, [int]$term)
{
[int]$errflg=0
if(-not(Test-Path ${targetPath})){
Write-Host "対象ディレクトリ($targetPath)が存在しません"
return $false;
}
if($prefix -eq $null){
Write-Host "対象ファイル名の接頭辞が不正です"
return $false;
}
if($term -eq $null -or $term -lt 0){
Write-Host "期間が不正です"
return $false;
}
Get-ChildItem -path $targetPath |
Where-Object{ ($_.PSIsContainer -ne $true) -and ($_.name -like "${prefix}*") -and ($_.LastWriteTime -lt (Get-Date).AddDays(-$term))} |
ForEach-Object{
$fname=$_.name
Write-Host "ファイル(${fname})を削除します"
$_.Delete()
if(!$?){
Write-Host "ファイル(${fname})の削除に失敗しました"
$errflg++
}
}
if($errflg -ne 0 ){
return $false
}
return $true
}