Powershell - 写入文本文件

时间:2012-12-06 13:40:56

标签: powershell

基本上我从事件日志中提取一些日志条目,对其进行格式化,然后将其写入文本文件,然后我将通过电子邮件发送。这适用于Windows Server Backup监视目的。

New-Item -ItemType directory -Path C:\WSBReports\
New-Item -ItemType file -Path C:\WSBReports\DailyReport.txt

$yestDate = (Get-Date) - (New-TimeSpan -day 1)
# echo $yestDate
Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge $yesterday} |

Format-Table TimeCreated, ID, ProviderName, Message -AutoSize -Wrap > C:\WSB_Reports\DailyReport.txt

首先 - 它说它无法写入文件,因为它不存在?即使我在上面创建了它。

而且 - 我认为逻辑是错误的,因为我需要在每次脚本运行时始终覆盖此文件,这可能吗?

2 个答案:

答案 0 :(得分:2)



Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge **$yesterday**} |

$昨天未定义,因为你的变量法术是$ yestDate!

我的以下脚本按预期工作


Get-WinEvent -logname "Application" | where {$_.timecreated -ge $yestDate} | format-table ItemCreated,ID,ProviderName,Message  -AutoSize -Wrap > C:\WSBReports\DailyReport.txt

答案 1 :(得分:1)

尝试:

New-Item -Type directory -Path C:\WSB_Reports\

$yesterday = (Get-Date) - (New-TimeSpan -day 1)
Get-WinEvent -logname "Microsoft-Windows-Backup" |
            where {$_.timecreated -ge $yesterday} |

Format-Table TimeCreated, ID, ProviderName, Message -AutoSize -Wrap | 
out-file  C:\WSB_Reports\DailyReport.txt