我希望从
获取文件的最后修改日期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位于运行命令提示符的同一文件夹中时才有效。我希望从程序文件文件夹中获取它,如果可能,直接从那里获取日期。
答案 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
如果这不起作用,我应该能够帮助解决上面的脚本。