【发布时间】:2015-11-02 02:53:11
【问题描述】:
我正在尝试用当前时间修改文件中日志记录的日期和时间,并将其保存在同一个文件中,但不知何故我无法更新它们。 DateTime 是动态变化的,我想按顺序更改每条记录的 DateTime。
如下所示,日期时间随着秒数和毫秒数的增加而变化 - 有没有办法可以根据当前系统时间递增地修改文件?我已经尝试过以下方式-我知道它不正确,但尝试了它是否有效。任何建议或建议解决此问题,请帮助。
环境:Windows 2008 和 Windows 2003
$PATH = "D:\Log\focusServer\focusServer.txt"
$content = "2015-10-27 15:50:21,900 [ListenerThread0] WARN focus.Core.Server.States.InvalidIPRangeState - Begin 'InvalidIPRangeState' for application '|did:N/A^ep:10.160.210.222:40534^iprg:N/A|'
2015-10-27 15:50:21,900 [ListenerThread0] INFO focus.Core.Server.Connection.DcmpConnection - |did:N/A^ep:01.60.210.222:40534^iprg:N/A|: Connection Established
2015-10-27 15:50:49,993 [12 ] INFO focus.Core.Server.Connection.DcmpConnection - |did:N/A^ep:01.60.213.172:39158^iprg:N/A|: Connection Closed. Reason: Socket closed by remote party (0-byte packet received)
2015-10-27 15:50:49,994 [ListenerThread0] WARN focus.Core.Server.States.InvalidIPRangeState - Begin 'InvalidIPRangeState' for application '|did:N/A^ep:01.60.213.172:39158^iprg:N/A|'
2015-10-27 15:50:49,994 [ListenerThread0] INFO focus.Core.Server.Connection.DcmpConnection - |did:N/A^ep:01.60.213.172:39158^iprg:N/A|: Connection Established"
$toReplace = "2015-10-27"
$updateContent = [DateTime]::Now.Add(0).AddHours(0).AddMinutes(0).addseconds(0).toString()
$convertDate = ([datetime]::ParseExact($updateContent,"dd/MM/yyyy HH:mm:ss",$null))
$convertDate.year.toString() + "-" + $convertDate.month.toString() +"-"+
$convertDate.day.toString() + " " + $convertDate.Hour.toString() + ":" +$convertDate.Minute.toString() + ":" + $convertDate.Second.toString()
Add-Content -Value $content -Path $PATH
(Get-Content $PATH) |
Foreach-Object {$_ -replace $toReplace,$updateContent} |
Out-File $PATH
【问题讨论】:
-
你能展示一下你希望它完成后的样子吗?我可以看到您要求的多种解释。你只是替换日期而不是时间?
-
您解析的精确格式字符串与您的示例数据不匹配。注意数据中的破折号和格式字符串中的斜杠。
-
最初,我尝试仅使用日期来执行此操作,但似乎我也需要更改时间。我正在尝试按顺序更改每条记录的日期和时间并保存在同一个文件中,例如:2015-10-27 15:50:21,900 [ListenerThread0] WARN focus..... 2015-10-27 15:50: 22,500 [ListenerThread0] INFO 焦点..... 2015-10-27 15:50:22,900 [ListenerThread0] WARN 焦点..... 2015-10-27 15:50:23,400 [ListenerThread0] INFO 焦点...... .
-
显示文件的示例之后更改是我的要求。您只是在 cmets 中重复了源代码。我知道如何处理时间。我需要知道究竟你在做什么。
标签: .net windows powershell datetime powershell-2.0