我对powershell很新,还在学习。我已经完成了我的第一个脚本,现在尝试添加一些日志记录。我能够追加到日志文件确定,但坚持备份日志并旋转它。这就是我到目前为止所拥有的
$CheckFile = Test-Path $Logfilepath
IF ($CheckFile -eq $false) {
$Date = (Get-Date).tostring()
$Date + ' - Automonitor log created - INFO' | Out-File -Append -Force $Logfilepath }
Else {
IF ((Get-Item $Logfilepath).length -gt $Size) {
Move-Item $Logfilepath -Destination $LogsOldFolder -Force}
}
这是我被困的地方。如果文件大于5MB我需要它移动到另一个文件夹(我在脚本中),但当移动到该文件夹时,我只想保留5个最新文件以避免存储问题。我将需要如下所示的文件。
Automonitor.log.1
Automonitor.log.2
Automonitor.log.3
Automonitor.log.4
Automonitor.log.5
Automonitor.log.1是最新创建的文件。所以我真的感到困惑的是我将采取的过程以及如何重命名文件以匹配上述格式,并在复制新文件时,根据创建的日期再次重命名所有文件并删除最旧的文件,因此只存在5个文件
我希望这是有道理的,如果有人有任何想法会很棒。
答案 0 :(得分:1)
你可以这样:
$a = gci $destfolder
if ( $a.count -gt 5)
{
$a | sort lastwritetime | select -first ($a.count - 5) | remove-item
}
这将为您提供比前5个文件更早的文件。
所以,这个脚本并不关心文件名。如果您需要,则应将$a = gci $destfolder
部分更改为某些通配符。