批处理 - 以秒为单位的文件上次修改时间

use*_*076 5 batch sorting timestamp date-modified batch-file

我想知道最后一次修改文件是什么时候。

我可以使用以下批处理脚本获取这些信息:

FOR %%i IN (myfile) DO SET modif_time=%%~ti

问题是我需要最后一次修改的第二个,命令%~t返回日期和时间,只有小时和分钟。

我只能通过逐个文件手动查看“属性窗口”文件来检查秒数。

如何批量获取秒数?

and*_*415 7

Windows Vista / 7 及更高版本

Windows Server 2003 及更高版本

只需稍加努力,您就可以forfiles获取特定文件的最后修改时间,包括秒数:

REM "delims=" is required to avoid stripping AM/PM
for /f "delims=" %%i in ('"forfiles /m filename /c "cmd /c echo @ftime" "') do set modif_time=%%i
echo %modif_time%
Run Code Online (Sandbox Code Playgroud)

示例输出

7:33:54 AM
Run Code Online (Sandbox Code Playgroud)

显示的值基于计算机的本地时间,并与文件属性对话框中显示的时间相匹配。

使用帮助

http://technet.microsoft.com/en-us/library/cc753551.aspx


视窗 XP

forfiles.exe不是开箱即用的,但是您可以手动获取所需的可执行文件。它是一个旧版本,是 Windows 2000 Resource Kit 的一部分。语法区分大小写并且略有不同,输出也是如此:

for /f %%i in ('"forfiles.exe -mfilename -c"cmd /c echo @FTIME" "') do set modif_time=%%i
echo %modif_time%
Run Code Online (Sandbox Code Playgroud)

示例输出

153354
Run Code Online (Sandbox Code Playgroud)

此处时间值以 UTC 格式显示,不受时区或夏令时更改的影响。在此示例中,文件上次修改时间为 15:33:54 (UTC)。

注意您可以forfiles.exe通过从任何 Windows 2003 Server 安装或设置媒体获取文件副本来获取更新版本。