使用日期作为文件名覆盖现有文件

时间:2016-04-07 03:27:00

标签: powershell overwrite

我是PowerShell脚本的新手。我试图用文件名中的日期和时间覆盖现有文件。

这是我正在使用的。

$LogName = "Security"
$EventID = 4725
$Date = ((get-date).addDays(-1))
$CurrentDate = Get-Date
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy_hh.mm.ss')
get-eventlog $LogName $EventID -after $Date | Export-CSV $Path -notypeinformation | Out-File -Filepath $Path -Append

然而,在运行时,它会返回错误,表示

  

Out-File:进程无法访问该文件,因为它正由另一个进程使用

我希望你们可以帮助我。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用ConvertTo-Csv而不是Export-CSV

Get-EventLog $LogName $EventID -after $Date | ConvertTo-Csv -NoTypeInformation | Out-File -Filepath $Path -Append

错误归结于您尝试同时读取和写入文件($ path)。

这将在您追加到同一文件之前停止Export-CSV创建文件,从而消除错误。