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

时间:2016-10-26 21:09:16

标签: batch-file last-modified

我希望从

获取文件的最后修改日期
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位于运行命令提示符的同一文件夹中时才有效。我希望从程序文件文件夹中获取它,如果可能,直接从那里获取日期。

2 个答案:

答案 0 :(得分:2)

以下是一些例子:

上次书面日期和时间 - (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)

答案 1 :(得分:1)

我过去使用过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 AM     “06-21-09-21__Broken_links.txt”2016/6/21 9:22:06 AM     “10-20-04-23__Broken_links.txt”10/20/2016 4:24:00 PM     “10-20-04-25__Broken_links.txt”10/20/2016 4:25:57 PM     “10-20-04-26__Broken_links.txt”10/20/2016 4:26:57 PM

如果这不起作用,我应该能够帮助解决上面的脚本。