【发布时间】:2019-08-16 02:38:55
【问题描述】:
如果一个文件被创建和写入一次,我希望 LastWriteTime 与 CreationTime 相同。这段代码似乎说这不是真的。这些时间戳是否存储了更高的精度? ToString 和比较是唯一的方法吗?
PS 09:30 C:\src\t
>Get-ChildItem .\uu.txt | Select-Object -Property Name,LastWriteTime,CreationTime
Name LastWriteTime CreationTime
---- ------------- ------------
uu.txt 2019-08-09 09:23:25 2019-08-09 09:23:25
PS 09:30 C:\src\t
>Get-ChildItem .\uu.txt | ForEach-Object { $_.LastWriteTime -eq $_.CreationTime }
False
更新:
我最终得到了以下代码。如果 LastWriteTime 和 CreationTime 之间的差异小于一秒,则假定文件自创建以来未更新。
$CloseEnough = New-Timespan -Seconds 1
Get-ChildItem -File -Path 'C:\src\t' |
Where-object { ($_.LastWriteTime - $_.CreationTime) -lt $CloseEnough }
【问题讨论】:
-
IMO 一定有区别,请检查
gi .\uu.txt| %{$_.LastWriteTime - $_.CreationTime}对于重定向到文件的 gci,我得到 2 毫秒/27616 滴答声 -
@LotPings - 恰到好处。我得到 23 毫秒的差异。请将此作为答案,我会标记它。谢谢。
标签: powershell