如何在“DIR /S /B”结果中获取最后修改日期时间戳?

如何在“DIR /S /B”结果中获取最后修改日期时间戳?

在 Windows 早期(3.1、Windows 95),有一项很棒的功能,称为“查找”,可用于查找计算机上的文件。

一些***决定删除此功能并将其“集成”到常规 Windows 资源管理器中。
尽管这样做很可能是出于好意,但在许多情况下它不起作用:我输入内容file:*.bak,当我幸运时(大多数情况下我都不幸运),我的计算机会搜索文件*.bak

因此,我决定使用旧的命令行,当我需要搜索文件时,我会转到主目录并输入dir /S /B *.bak,然后它就会像魔法一样运行!

但是...没有显示最后修改日期,这使得很难看出哪个是列表中最新的 bak 文件。

有人知道如何将最后修改日期添加到Dir /S /B结果中吗?

提前致谢

答案1

删除该/B选项,即隐藏最后修改日期(以及文件名之外的其他信息)。

最新的 Windows 版本包括forfiles.exe,它可以按名称和/或年龄递归查找文件并针对每个结果运行一些命令。它方便地支持命令的日期/时间替换:

forfiles /s /m *.c /c "cmd /c echo @fdate @ftime @path"

PowerShell 可以为您提供更多灵活性;其默认输出类似于 Cmd 的输出dir

dir -recurse *.c

但在后台它是基于对象的(直到它转换为文本以在屏幕上显示),因此您可以使用它... | Select-Object来输出具有特定属性的单个平面表(禁用“dir”样式的每个目录表):

dir -rec *.c | select LastWriteTime,FullName

...或者使用以下方式创建自己的输出... | ForEach-Object {...}

dir -r *.c | % { echo "$($_.LastWriteTime) -- $($_.FullName)" }

相关内容