如何使用“find”命令获取昨天创建的文件?

时间:2014-02-12 19:23:10

标签: windows batch-file cmd batch-processing

我正在运行一个批处理文件,该文件获取目录下所有文件和子文件夹的列表。然后我将从该列表中过滤掉今天和昨天创建的一些特定文件。我在寻找昨天创建的文件时遇到了一些困难,我想也许%date% - 1可能有效,但事实并非如此。谁可以帮我这个事 ?感谢

REM SETUP CREATE TIME
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%


REM LIST OF FILES AND FOLDERS

dir /s "K:\AppData\Released_To_Production" > "C:\K_RLTP_FILES.txt"
dir /a:d /t:w /s "K:\AppData\Released_To_Production" > "C:\K_RLTP_Folders.txt"

REM TODAY'S CATIA FILES

echo List is Created @  [%ldt%] > "C:\catia_result.txt"
echo -------------------------------------------- >> "C:\catia_result.txt"
echo -------------------------------------------- >> "C:\catia_result.txt"
find ".model" "C:\K_RLTP_FILES.txt" | find "%date%" >> "C:\catia_result.txt"
find ".CATPart" "C:\K_RLTP_FILES.txt" | find "%date%" >> "C:\catia_result.txt"

1 个答案:

答案 0 :(得分:0)

@echo off
REM get all files older than 5 days:
forfiles /s /d -5 /c:"cmd /c echo @path" >a.txt
REM get all files:
forfiles /s /c:"cmd /c echo @path" >b.txt
REM get all files minus files older than 5 days:
findstr /v /g:a.txt b.txt

注意:我选择了5天进行测试。对于今天和昨天更改的文件,您必须使用-1而不是-5