我需要生成所有在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表示法)。