2014-02-12 417 views
0

我运行一个批处理文件,获取目录下所有文件和子文件夹的列表。那么我会过滤掉今天和昨天从该列表创建的一些特定文件。我有一些难以找到昨天创建的文件,我想也许%date% - 1可以工作,但它不。谁可以帮我这个事 ?由于如何使用“find”命令获取昨天创建的文件?

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" 
+0

看看'FORFILES /?' – Stephan

+0

我试图筛选与昨天在一个txt日线,我不认为FORFILES这里可以使用..... –

+0

好 - 不是直接。但考虑一些角落可以提供帮助。看到我的答案。 – Stephan

回答

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

+0

感谢您的帮助。这可能比找出昨天的日期更容易。 –