【发布时间】:2020-04-17 13:34:50
【问题描述】:
我是脚本和 Powershell 的新手,我正在尝试创建一个脚本来每天只保留最后 3 天的日志文件
function RotateLog {
$dir="C:\Users\user1\Documents\Project\LOG"
$DayMax= -3
$CurrentDate= Get-Date -uformat "%d-%m-%Y-%H%M"
$DatetoDelete= (get-date -UFormat "%d-%m-%Y-%H%M").AddDays($DayMax)
get-childitem -path $dir -filter "YYYY-mm-dd-*.LOG"
foreach-object {
if ($_.LastWriteTime -lt $DatetoDelete)
{remove-item}
}
}
当我运行 $DatetoDelete 时,它返回失败,因为 [System.String] 不包含名为“AddDays”的方法。
所以我尝试将变量替换为
$dtt=(get-date).AddDays($DayMax)
它是这样工作的,但我需要获取格式。 我该怎么做?
另一个问题,当我运行命令remove-item时,它在命令管道位置1返回cmdlet remove-item
为以下参数提供值:path[0]
什么意思?
【问题讨论】:
-
为了比较事物,使用
[datetime]objects ...除了显示之外,切勿将它们转换为日期时间strings。
标签: powershell logrotate