You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何正确比较文件的最后修改时间(含时分秒)

PowerShell文件完整修改时间比较解决方案

我需要比较两个文件的修改时间(包含时分秒),但当前代码的比较结果不符合预期——明明xlsx文件的修改时间(12:50:25)晚于csv文件(12:34:32),却返回False。

错误代码示例

Get-Item $OneDrivePathXlsx | Foreach {$_.LastWriteTime}
$LastModifiedXlsx = $_.LastWriteTime
Get-Item $OneDrivePathCsv | Foreach {$_.LastWriteTime}
$LastModifiedCsv = $_.LastWriteTime

$LastModifiedXlsx -gt $LastModifiedCsv

执行结果

den 7 april 2023 12:50:25
den 7 april 2023 12:34:32
False

问题原因

  • 赋值逻辑错误:Get-Item ... | Foreach {$_.LastWriteTime} 仅输出了时间值,但管道执行结束后,$_ 不再指向目标文件对象,此时$_.LastWriteTime获取的并非目标文件的时间,而是无效或残留值。
  • 单个文件无需使用Foreach,直接访问Get-Item返回对象的LastWriteTime属性即可。

正确代码

# 直接获取单个文件的完整修改时间(包含时分秒)
$LastModifiedXlsx = (Get-Item $OneDrivePathXlsx).LastWriteTime
$LastModifiedCsv = (Get-Item $OneDrivePathCsv).LastWriteTime

# 精准比较完整的DateTime对象
$LastModifiedXlsx -gt $LastModifiedCsv

执行这段代码后会正确返回True,因为PowerShell的DateTime类型本身包含完整的日期和时间信息,直接比较就能准确判断时间先后。

内容的提问来源于stack exchange,提问作者Fiilli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:13:22