2016-05-17 103 views
1

我在Windows 8.1中创建了一个月前的文件。我正在寻找它,但我没有找到它(我有很多文件),所以我只记得他们的内容“otro”(西班牙文)的一个字,但我得到了很多文件。我想按日期过滤文件(因为我知道我大约在一个月前创建了该文件)。按日期筛选文件(在CMD中)

要按文件内容过滤器,我使用:

findstr /s /i /n /c:"otro" *.txt 

我需要添加到该命令的其它过滤器(按日期)。我认为我需要添加一个管道和一个按日期过滤的命令。

回答

1

有一种方法可以按照日期使用dir /od对文件进行排序,但是这在子文件夹中不起作用。但缩小到单月,你可以使用:

for /f "delims=" %i in ('dir /s /b /od /a-d *.txt') do @(find /i "otro" "%i" >nul &&echo %~ti %i|findstr /b "05....2016") 

(这是命令行使用用在批处理文件双倍所有%)。

查找当前文件夹中的所有.txt文件和包含otro并在今年五月进行了修改,所有子文件夹(现在是六月中旬,这是关于“四周前加/±2周”)(假设一个日期 - 格式mm/dd/yyyymm-dd-yyyymm.dd.yyyy;对于dd.mm.yyyy格式使用findstr /b "...05.2016")。我希望,其中没有太多......

+0

'find'是否正确设置了ERRORLEVEL?另外,这取决于日期格式的区域设置。除en/US之外,它可能会有所不同。 – lit

+0

@Liturgist我从来没有发现'find'-errorlevel给我虚假的结果。你有没有反例?是的,这是_is_语言环境依赖(_“假定日期格式为...”)它可以与'wmic datafile'一起使用泛型,但是对于(可能)一次性语言来说,任务。 – Stephan

+0

谢谢Stephan :)。我发现我的文件感谢您的代码,我只改变了你说的“日期格式”到“... 05.2016”。有趣的是,可以在命令行中使用循环(我不知道),我将研究代码。我将你的答案标记为解决方案。 – learnprogramming