我曾尝试编写一个PowerShell脚本,当文件夹中的文本文件超过15分钟时,该脚本会写入一个事件。
这是我尝试使用的代码:
$targetfile=get-childitem C:\Users\user\Desktop\bizin\*.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分钟运行一次。
发布于 2016-04-19 20:45:19
您需要访问文件的LastWriteTime
属性,并将其与DateTime
对象进行比较:
$targetFiles = Get-ChildItem -Path 'C:\Users\user\Desktop\bizin\' -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:\Users\user\Desktop\bizin\' -Filter *.txt | ? { $_.LastWriteTime -lt [DateTime]::Now.AddMinutes(-15) } | % { <# Write the eventlog... #> }
https://stackoverflow.com/questions/36718647
复制相似问题