powershell 在输出文件中保存文本

时间:2021-06-07 13:12:53

标签: powershell powershell-4.0

$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 文件中,只会输出时间值。如何修复?

1 个答案:

答案 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
相关问题