2014-02-12 70 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

感謝您的幫助。這可能比找出昨天的日期更容易。 –