2016-05-17 138 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