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

PowerShell无法获取LastWriteTime字段数据问题求助

解决Select-String无法获取LastWriteTime的问题

这个问题我之前也碰到过,核心原因是Select-String返回的对象类型和你想的不一样——它输出的是MatchInfo对象,这类对象只记录匹配的路径(字符串形式)、行内容这些匹配相关的信息,本身并没有附带文件的LastWriteTime属性,所以你直接选这个字段自然是空的。

要同时获取匹配行和文件的最后修改时间,你可以利用MatchInfo对象自带的FileInfo属性(它指向对应的文件对象,包含所有文件属性),通过计算属性来提取LastWriteTime:

Get-ChildItem -Recurse | Select-String -Pattern "CYCLE" | Select-Object Path, Line, @{Name='LastWriteTime'; Expression={$_.FileInfo.LastWriteTime}}

命令解释:

  • @{Name='LastWriteTime'; Expression={$_.FileInfo.LastWriteTime}}:这是PowerShell的计算属性语法,我们手动定义一个名为LastWriteTime的字段,其值来自当前MatchInfo对象关联的FileInfo对象的LastWriteTime属性。

如果你更喜欢分步处理(可读性更强),也可以先遍历每个文件,再执行搜索并绑定文件属性:

Get-ChildItem -Recurse | ForEach-Object {
    # $_ 是当前的文件对象(FileInfo),包含LastWriteTime
    $file = $_
    $file | Select-String -Pattern "CYCLE" | Select-Object Path, Line, @{Name='LastWriteTime'; Expression={$file.LastWriteTime}}
}

这两种方法都能完美解决你的问题,输出结果里的LastWriteTime列会正确显示文件的最后修改时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:37:39