查找在date,批处理脚本之间创build/访问/修改的文件

我需要生成所有在Windows系统上分别创build,修改和访问的文件列表。

我发现这里的文件命令http://technet.microsoft.com/sv-se/library/cc753551(v=ws.10).aspx但显然这不使用创build和访问的时间戳,我也需要这些在单独的列表中)。

我也研究过使用dir命令,但我只find了sorting的参考,而不是在帮助部分过滤。

你的问题有一些不清楚的细节,所以我做了一些假设。

下面的批处理文件创建三个分离的文本文件:created.txt,modified.txt和accessible.txt,以及当前文件夹中的文件列表; 每个列表都有YYYYMMDDHHMMSS格式的相应日期,后跟文件名,因此可以很容易地处理。

 @echo off setlocal DisableDelayedExpansion for %%f in (created modified accessed) do if exist %%f.txt del %%f.txt set "folder=%CD:~2%" for /F "skip=1 tokens=1-3*" %%a in ( '"wmic datafile where (path='%folder:\=\\%\\') get InstallDate, LastModified, LastAccessed, Name"' ) do ( for /F "delims=." %%A in ("%%a") do echo %%A %%d>> created.txt for /F "delims=." %%B in ("%%b") do echo %%B %%d>> modified.txt for /F "delims=." %%C in ("%%c") do echo %%C %%d>> accessed.txt ) rem Process each list this way: for /F "tokens=1*" %%a in (created.txt) do echo %%a - %%b 

在这个问题上也有“之间的日期”:)那怎么样?

forfiles不允许放置2个日期条件('+'和' – ')。

我也有一个与wmic不平等的日期条件的问题。

例如:

 wmic datafile where (path='%folder:\=\\\\%\\\\' and lastmodified ^> "20120713" and lastmodified ^< "20120714") get Name 

什么也没有返回(我需要在'<'和'>'之前执行命令)('^')。

 wmic datafile where (path='%folder:\=\\\\%\\\\' and lastmodified ^> "20120713") get Name 

只返回在20120714000000之后修改的文件(以wmic表示法)。