dos中如何用批處理刪除N天前或指定日期時間內創建以及修改的文件-創新互聯

這篇文章給大家介紹dos中如何用批處理刪除N天前或指定日期時間內創建以及修改的文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

我們提供的服務有:網站設計制作、成都網站設計、微信公眾號開發、網站優化、網站認證、夾江ssl等。為1000+企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的夾江網站制作公司

核心代碼:

@echo off
:: by oicu#lsxk.org
:: 15:17 2011-1-13

:: 如果只是刪除指定日期或N天前修改的文件,用forfiles即可
FORFILES /P "C:\測試目錄" /S /M *.log /D -3 /C "cmd /c if @isdir==FALSE echo del @file"
:: 指定日期(包含)前修改的文件:/D -yyyy/mm/dd

:: 以下是流水賬
:: 使用限制:控制面板里設定日期格式為中文(中國)
:: 只有dir /tc才能查看到文件創建時間,默認dir都是dir /tw
:: 為了取出創建時間,只好用兩次for+find,肯定很慢。

cd /d 你的目錄
:: 如果要包含子目錄,用for /r . %%a in (*)

:: 顯示文件修改時間
for %%a in (*) do echo "%%~ta"
:: 中文格式時相當于
for %%a in (*) do for /f "tokens=1,2* delims= " %%b in (
'dir /tw "%%a" ^| find /i "%%~nxa"'
) do echo "%%b %%c"

:: 刪除某個時間后修改過的文件(這個簡單)
for %%a in (*) do if "%%~ta" gtr "2008-04-01" echo del "%%a"

:: 這個才是顯示文件創建時間
for %%a in (*) do for /f "tokens=1,2* delims= " %%b in (
'dir /tc "%%a" ^| find /i "%%~nxa"'
) do echo "%%b %%c"

:: 刪除某個時間之后創建的文件,如果要刪除某個時間之前創建的,更改兩
:: 處gtr為lss。除了日期外,增加判斷時間,可以去掉else段。
for %%a in (*) do for /f "tokens=1,2* delims= " %%b in (
'dir /tc "%%a" ^| find /i "%%~nxa"') do (
  if "%%b" gtr "2010-12-15" (
    echo del "%%a"
  ) else (
    if "%%b" equ "2010-12-15" if "%%c" gtr "14:50" echo del "%%a"
  )
)

:: 用批處理計算時間受到系統的日期格式限制,影響到用set取某一字段的值,
:: 批處理計算時間方法過于復雜,要么只用vbs腳本刪除文件,要么用批處理
:: 配合vbs腳本刪除。

:: 取10天之前的日期,取回放入變量OldDate
echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
for /f %%a in ('cscript /nologo GetOldDate.vbs') do set OldDate=%%a
echo %OldDate%
del GetOldDate.vbs

:: VBScript里沒有Format函數,Year、Month、Day等函數取數值后也要處理小
:: 于10的數字,只能用下面的方法整理日期格式
echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
for /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do (
  set y=%%i
  set m=%%j
  set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set OldDate=%y%-%m%-%d%
echo %OldDate%
del GetOldDate.vbs


:: 綜合上文,最后得到我們想要的結果
:: 刪除10天前創建的舊文件(不含子目錄)
echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
for /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do (
  set y=%%i
  set m=%%j
  set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set OldDate=%y%-%m%-%d%
del GetOldDate.vbs
for %%a in (*) do for /f "tokens=1,2* delims= " %%b in (
'dir /tc "%%a" ^| find /i "%%~nxa"') do (
  if "%%b" lss "%OldDate%" echo del "%%a"
)

:: 刪除10天前修改的舊文件(不含子目錄)
echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
for /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do (
  set y=%%i
  set m=%%j
  set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set OldDate=%y%-%m%-%d%
del GetOldDate.vbs
for %%a in (*) do if "%%~ta" lss "%OldDate%" echo del "%%a"


:: 本文全部用echo del代替del,只是顯示要刪除的文件,并不實際刪除。

pause
goto :eof

關于dos中如何用批處理刪除N天前或指定日期時間內創建以及修改的文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

新聞名稱:dos中如何用批處理刪除N天前或指定日期時間內創建以及修改的文件-創新互聯
本文鏈接:http://m.kartarina.com/article40/didheo.html

成都網站建設公司_創新互聯,為您提供品牌網站建設、品牌網站設計網站內鏈、網頁設計公司、虛擬主機、商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司
主站蜘蛛池模板: 超清无码一区二区三区| 国产在线无码一区二区三区视频 | 国产成人AV片无码免费 | 国产精品无码专区在线观看| 精品少妇人妻av无码专区| 亚洲色无码专区在线观看| 精品无码一区二区三区爱欲九九 | 无码人妻一区二区三区av| 无码人妻久久久一区二区三区| 亚洲av无码专区国产不乱码| 亚洲AV人无码激艳猛片| 麻豆人妻少妇精品无码专区| 日韩精品专区AV无码| 免费无码作爱视频| 夫妻免费无码V看片| 亚洲精品无码久久毛片波多野吉衣 | 中文无码不卡的岛国片| 国产色综合久久无码有码| 麻豆精品无码国产在线果冻| 人妻无码一区二区三区AV| 国产精品无码专区在线观看| 老司机无码精品A| 亚洲成a∧人片在线观看无码| 无码免费一区二区三区免费播放 | 国模无码人体一区二区| 免费A级毛片无码A∨男男| 97久久精品无码一区二区天美| 久久午夜无码鲁丝片直播午夜精品| 成人h动漫精品一区二区无码| 亚洲久热无码av中文字幕| 无码人妻精品一区二区三区在线 | 久久久g0g0午夜无码精品 | 日本无码色情三级播放| 色欲aⅴ亚洲情无码AV| 波多野结衣VA无码中文字幕电影| 亚洲AV无码片一区二区三区| 亚洲av永久中文无码精品| 成在人线AV无码免费| 嫩草影院无码av| 国产成人无码综合亚洲日韩| 亚洲AV无码乱码在线观看富二代|