如何在 windows/dos 命令上获取文件的最后修改日期

How to get a file's last modified date on windows/dos command

我想从

中获取文件的最后修改日期
C:\Program Files (x86)\FolderTransfer4\WRTEUHH.dll

我用了脚本

for %a in (WRTEUHH.dll) do set FileDate=%~ta

发帖于此:How to get file's last modified date on Windows command line?

这个脚本有效。但是,这仅在该 DLL 位于命令提示符 运行 所在的同一文件夹中时才有效。我想从那个程序文件文件夹中获取它,如果可能的话直接从那里获取日期。

我过去使用过 forfiles 命令,效果很好,在这种情况下可能会有所帮助。

这是一个示例和输出:

命令 forfiles /P C:\_Demo\WritersForum /M *.* /C "cmd /c echo @file @fdate @ftime"

输出 “06-21-09-20__Broken_links.txt” 2016 年 6 月 21 日 9:21:08 上午 “06-21-09-21__Broken_links.txt” 2016 年 6 月 21 日 9:22:06 上午 “10-20-04-23__Broken_links.txt”2016 年 10 月 20 日 4:24:00 下午 “10-20-04-25__Broken_links.txt”2016 年 10 月 20 日 4:25:57 下午 “10-20-04-26__Broken_links.txt”2016 年 10 月 20 日 4:26:57 下午

如果这不起作用,我应该可以帮助解决上面的脚本问题。

这里有几个例子供您参考:

最后写入日期和时间 - (cmd.exe) 使用提供的示例进行变量引用扩展

FOR %A IN ("%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll") DO @ECHO=%~tA

最后写入日期和时间 - (cmd.exe) 在 for 循环中使用 where 命令, (不适合使用 AM/PM 表示法的本地时间输出)

FOR /F "TOKENS=2-3" %A IN ('WHERE /T "%ProgramFiles(x86)%\FolderTransfer4:WRTEUHH.dll"') DO @ECHO=%A %B

仅最后写入日期 - (cmd.exe) 在 for 循环中使用 where 命令

FOR /F "TOKENS=2" %A IN ('WHERE /T "%ProgramFiles(x86)%\FolderTransfer4:WRTEUHH.dll"') DO @ECHO=%A

最后写入日期和时间 - (批处理文件) 使用提供的示例进行变量引用扩展

@FOR %%A IN ("%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll") DO @(ECHO=%%~tA&PAUSE)

最后写入日期和时间 - (批处理文件) 在 for 循环中使用 where 命令,(不使用 AM/PM 表示法满足本地时间输出)

@FOR /F "TOKENS=2-3" %%A IN ('WHERE /T "%ProgramFiles(x86)%\FolderTransfer4:WRTEUHH.dll"') DO @(ECHO=%%A %%B&PAUSE)

仅最后写入日期 - (批处理文件) 在 for 循环中使用 where 命令

@FOR /F "TOKENS=2" %%A IN ('WHERE /T "%ProgramFiles(x86)%\FolderTransfer4:WRTEUHH.dll"') DO @(ECHO=%%A&@PAUSE)