Bat腳本學習-3:按修改時間倒序列出最新10條文件


每次部署升級系統時,都不知道上次升級是什么時候,嘗試弄個bat腳本。本想練練python的,但服務器還要每台去裝python,bat能實現就先用bat吧

@echo off
setlocal enabledelayedexpansion
set count = 0
dir /a-d /o-d /s |sort /r >>TmpSort.txt
For /f "delims=" %%i in (TmpSort.txt) DO (
    set /a count += 1
    if !count! GTR 2 if !count! LEQ 12 echo %%i
)
echo y |del TmpSort.txt
pause

弄了一晚,文件搜索按時間排序是容易找到,遞歸處理子文件夾也是可以,但排序是單獨按每個文件夾來處理的。

后來找了一篇,先把搜索結果存到臨時文本里,再從文本里讀出來,最后刪除文本(如果是用python實現的話,就不用臨時文本了,弄個數組之類的應該就可以)

 

1、要在循環中使用變量,要setlocal enabledelayedexpansion,並且用 !變量! 這種形式使用

 

2、dir:

/a表示屬性,-d表示非文件夾

/o表示排序,-d表示按時間倒序

/s表示所有子文件夾

 

3、sort

使用 | 來把結果傳給管道,sort /r 表示倒序,這樣才能按時間倒序排列

 

4、echo y | del ,直接刪除臨時文件不提示

 

5、只能顯示文件名,不能顯示完整路徑,也不能去掉文件大小,先這樣吧,也夠用了,要高級功能的話,改天可以拿python重寫一個

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM