我尝试制作一个PowerShell脚本,当文件夹中的文本文件超过15分钟时,该脚本会写入事件。
这是我尝试使用的代码:
$targetfile=get-childitem C:UsersuserDesktopbizin*.txt
if ($targetfile.AddMinutes -15 )
{
write-eventlog -logname Application -source ESENT -eventID 9999 -entrytype Error -message "No new files in 15min gate is down!" -category 3
'create event log to say bad things have happened'
}
我总是在运行脚本时得到事件。我只想在文件超过15分钟时获取事件。这将是一项每15分钟运行一次的计划任务。
您需要访问文件的LastWriteTime
属性,并将其与DateTime
对象进行比较:
$targetFiles = Get-ChildItem -Path 'C:UsersuserDesktopbizin' -Filter *.txt
foreach ($targetFile in $targetFiles)
{
if ($targetFile.LastWriteTime -lt [DateTime]::Now.AddMinutes(-15))
{
# Write the eventlog....
}
}
注意:您可以使用Get-ChildItem cmdlet的-Filter
参数仅检索txt
文件。以下是在一行中使用别名和管道的相同示例:
gci -Path 'C:UsersuserDesktopbizin' -Filter *.txt | ? { $_.LastWriteTime -lt [DateTime]::Now.AddMinutes(-15) } | % { <# Write the eventlog... #> }