【发布时间】:2014-09-12 20:08:10
【问题描述】:
我正在尝试制作一个简单的批处理脚本,该脚本比较 4 个不同目录中的 4 个文件并将“上次修改”文件放入变量中。我最接近的是使用'dir'排序并使用修改日期对其进行排序:
for /f "tokens=*" %%G in ('dir *.txt /b /s /a-d /od C:\testing ') do SET newest1=%%G
但是,这仅适用于一个目录。所以我的问题是,我如何确定最后修改的文件来自多个目录(实际上需要四个不同的文件夹)。
我试过了:
FOR /F %%i IN ('DIR /b /s /O:D /T:W C:\testing\test1\test.txt C:\testing\test2\test2.txt') DO SET NEWEST=%%i
但这不适用于多个目录。我猜因为我要处理多个目录,所以排序不起作用,那我还能用什么?
一些注意事项:
需要将文件精确到秒
有些文件可能会变得相当大,因此将它们全部复制到另一个文件夹然后比较它们会花费很长时间并且效率不会很高
【问题讨论】:
-
文件是否有共同的文件规范?有关文件的详细信息可以帮助您获得最简单的解决方案。如果文件在同一个驱动器上,那么移动是一个非常快速的操作,它们可以被移回——但我们对文件知之甚少。 Robocopy 也可用于获取最新文件 - 取决于文件的位置。
-
你说“4 个文件”——所以你知道文件名——还是文件名变量?
标签: windows batch-file cmd