我希望Powershell脚本生成具有相同名称的新日志文件,并且如果该日志文件将超过特定大小,则将旧日志文件复制到具有新名称的新文件中,例如log.1文件扩展名。
我用文件目录作为变量实现了基本的Add-Content命令:
$logmsg = $date + " " + $status.ToString() + " " + $item + " " + $perf + " " + $output
Add-Content D:\...\..._log.txt -Value $logmsg
我实际上不需要编写脚本来创建更多日志文件,例如log.2,log.3等。我只需要将旧日志保留在此log.1文件中,并且如果原始日志文件的大小将再次超过,则log.1文件可以被覆盖。
找不到专门用于PS脚本编写的任何方法。
答案 0 :(得分:1)
如果我正确理解了您的问题,则希望保留一个当前日志文件,如果文件大小超过一定大小,则应将内容存储在另一个文件中,然后清空当前日志文件。
您可以这样做:
$logfile = 'D:\...\..._log.txt' # this is your current log file
$oldLogs = 'D:\...\old_logs.txt' # the 'overflow' file where old log contents is written to
$maxLogSize = 1MB # the maximum size in bytes you want
$logmsg = $date + " " + $status.ToString() + " " + $item + " " + $perf + " " + $output
# check if the log file exists
if (Test-Path -Path $logfile -PathType Leaf) {
# check if the logfile is at its maximum size
if ((Get-Item -Path $logfile).Length -ge $maxLogSize) {
# append the contents of the log file to another file 'old_logs.txt'
Add-Content -Path $oldLogs -Value (Get-Content -Path $logfile)
# clear the content of the current log file
# or delete it completely with Remove-Item -Path $logfile -Force
Clear-Content -Path $logfile
}
}
# keep adding info to the current log file
Add-Content -Path $logfile -Value $logmsg
希望这会有所帮助