Batch file 如何获取文件';s上次修改windows/dos命令的日期

Batch file 如何获取文件';s上次修改windows/dos命令的日期,batch-file,last-modified,Batch File,Last Modified,我想从中获取文件的上次修改日期 C:\Program Files (x86)\FolderTransfer4\WRTEUHH.dll 我使用了脚本 for %a in (WRTEUHH.dll) do set FileDate=%~ta 张贴于此: 这个脚本很有效。但是,只有当该DLL位于运行命令提示符的同一文件夹中时,此选项才有效。如果可能的话,我想直接从program files文件夹中获取它和它的日期。我过去使用过forfiles命令,它工作得很好,在这种情况下可能会有所帮助 下面是一

我想从中获取文件的上次修改日期

C:\Program Files (x86)\FolderTransfer4\WRTEUHH.dll
我使用了脚本

for %a in (WRTEUHH.dll) do set FileDate=%~ta
张贴于此:


这个脚本很有效。但是,只有当该DLL位于运行命令提示符的同一文件夹中时,此选项才有效。如果可能的话,我想直接从program files文件夹中获取它和它的日期。

我过去使用过forfiles命令,它工作得很好,在这种情况下可能会有所帮助

下面是一个示例和输出:

命令
forfiles/pc:\\u Demo\WritersForum/M*/C“cmd/C echo@file@fdate@ftime”

输出 “06-21-09-20_uu-breaked_-links.txt”2016年6月21日9:21:08上午 “06-21-09-21\u断开的链接.txt”6/21/2016 9:22:06上午 “10-20-04-23_uuu-breaked_-links.txt”2016年10月20日下午4:24:00 “10-20-04-25_uuu-breaked_-links.txt”2016年10月20日下午4:25:57 “10-20-04-26_uu-breaked_-links.txt”2016年10月20日下午4:26:57


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

我过去使用过forfiles命令,它工作得很好,在这种情况下可能会有所帮助

下面是一个示例和输出:

命令
forfiles/pc:\\u Demo\WritersForum/M*/C“cmd/C echo@file@fdate@ftime”

输出 “06-21-09-20_uu-breaked_-links.txt”2016年6月21日9:21:08上午 “06-21-09-21\u断开的链接.txt”6/21/2016 9:22:06上午 “10-20-04-23_uuu-breaked_-links.txt”2016年10月20日下午4:24:00 “10-20-04-25_uuu-breaked_-links.txt”2016年10月20日下午4:25:57 “10-20-04-26_uu-breaked_-links.txt”2016年10月20日下午4:26:57


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

以下是一些示例:

上次写入的日期和时间-(cmd.exe)使用提供的用于变量引用扩展的示例

(“%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll”)中%A的
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
上次写入日期和时间-(批处理文件)使用提供的示例进行变量引用扩展

(“%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll”)中%%A的
@执行@(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)

以下是一些示例:

上次写入的日期和时间-(cmd.exe)使用提供的用于变量引用扩展的示例

(“%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll”)中%A的
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
上次写入日期和时间-(批处理文件)使用提供的示例进行变量引用扩展

(“%ProgramFiles(x86)%\FolderTransfer4\WRTEUHH.dll”)中%%A的
@执行@(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)

我的部分回答被省略了。您可以使用/S开关进行递归。/P开关是路径,因此您只需将其更改为程序文件(x86)。我的部分响应被省略。您可以使用/S开关进行递归。P开关是路径,因此您只需将其更改为程序文件(x86),然后在代码中使用该路径<“C:\path to file\WRTEUHH.dll”中的%a的代码>设置FileDate=%~ta这有效。我发誓我昨天试过了,但没有成功。然后在代码中使用路径<“C:\path to file\WRTEUHH.dll”中的%a的代码>设置FileDate=%~ta这有效。我发誓我昨天试过了,但没用。哦,哇。非常感谢你。我最终使用了第一个脚本,这对我来说非常适合。非常感谢你提供的细节。哦,哇。非常感谢你。我最终使用了第一个脚本,这对我来说非常适合。非常感谢您提供的详细信息。