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重写一个

原文地址:https://www.cnblogs.com/liuyouying/p/6671393.html