$timeFromFile = Get-Content 'D:\script2\IIS\timeln.txt'
$diff = [datetime]::Now - [datetime]$timeFromFile
[System.Math]::Round($diff.TotalSeconds)
if ($diff.TotalSeconds -gt 900){
Write-Host "Time difference is greater than 900 seconds"
}
$diff.TotalSeconds | Out-File 'D:\script2\IIS\EndTime.txt'
执行上述脚本时,计算时间的结果值保存为 EndTime.txt。但是,当 900 秒过去后,消息不会保存在 EndTime.txt 文件中,只会输出时间值。如何修复?
答案 0 :(得分:1)
基于评论“当上面的脚本执行时,结果只有数字,例如)39568.2052459 不要记录“时间差大于 900 秒”我终于可以知道什么了你在追求:)
您所做的是将秒数通过管道传输到文件 ($diff.TotalSeconds | Out-File 'D:\script2\IIS\EndTime.txt'
),并且您需要通过管道传输消息本身。我在消息中添加了秒值。
$timeFromFile = [datetime]::Now
$diff = [datetime]::Now - [datetime]$timeFromFile
$diffSecs = [System.Math]::Round($diff.TotalSeconds)
#Initialize empty string variable for message
$msg = ""
if ($diffSecs -gt 900) {
#Setting the message if greater than 900
$msg = "Time difference is greater than 900 seconds ($diffSecs)"
}
else {
#If lower or equal
$msg = "Time difference IS NOT greater than 900 seconds ($diffSecs)"
}
#Setting the content of file to the $msg variable value
$msg | Out-File C:\Temp\asd.txt