windows查找最近修改的文件腳本

@echo off
@echo ===================================================================
@echo 查找最近n天內指定路徑下修改的文件,包含該路徑下子文件夾內的內容
@echo ===================================================================
rem set /a n=3
set SOFTWAREPATH=%~dp0
set TYPE=0
set /p TYPE=請輸入您要查找的類型(0:所有文件;1:C#源代碼;2:SQL;3:pdf):
set /p n=請輸入您要查找最近幾天內的修改,輸入數字:
set /p SOFTWAREPATH=請輸入要查找的路徑,不輸入默認當前文件所在位置:

rem    計算前n天日期,閏年按簡單4年一閏計  ----  yyykkkyyyy 
echo.
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n,"1/(-d>>31)" 2>nul&&goto :ok
:loop
set/a m-=1,d+=31,y-=!m,m+=!m*12
set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)"
if %d% leq 0 goto :loop
:ok
set/a m+=100,d+=100
set "d_n=%y%/%m:~1%/%d:~1%"
rem 計算時間結束

@echo 開始時間:%d_n%
rem 設置路徑

@echo 查找路徑:%SOFTWAREPATH%
@echo 查找類型:%TYPE%
cd /d %SOFTWAREPATH%
@echo ==================================================================
@echo 開始查找最近%n%天內修改的文件
@echo ==================================================================
if %TYPE%==0 (
	for /r %%i in (*) do if %%~ti GEQ %d_n% @echo  最後修改日期大於%d_n%的文件%%i;最後修改時間%%~ti
)
if %TYPE%==1 (
	for /r %%i in (*.cs) do if %%~ti GEQ %d_n% @echo  最後修改日期大於%d_n%的cs文件%%i;最後修改時間%%~ti
)
if %TYPE%==2 (
	for /r %%i in (*.sql) do if %%~ti GEQ %d_n% @echo  最後修改日期大於%d_n%的sql文件%%i;最後修改時間%%~ti
)
if %TYPE%==3 (
	for /r %%i in (*.pdf) do if %%~ti GEQ %d_n% @echo  最後修改日期大於%d_n%的sql文件%%i;最後修改時間%%~ti
)
@echo ===============================================================
@echo 查找結束,歡迎交流,郵箱:@.com
@echo ===============================================================
pause
rem EQU - 等於
rem NEQ - 不等於
rem LSS - 小於
rem LEQ - 小於或等於
rem GTR - 大於
rem GEQ - 大於或等於

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章