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

时间: 2024-07-29 07:07:43

Bat脚本学习-3:按修改时间倒序列出最新10条文件的相关文章

Bat 脚本学习 (基础篇)

[转]Bat 脚本学习 2015-01-05 14:13 115人阅读 评论(0) 收藏 举报 基础部分: ====================================================================== 一.基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改. 2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环. 3.批处理的

bat脚本学习

bat 计算机系统文件类型    学习. 批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用.这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件. 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用

Bat脚本学习-6:Oracle自动备份还原脚本

这次注释没写多少,先跳过一些吧 ::2.数据库过期备份删除 echo. echo. echo 二.正在清除过期的备份文件-- REM wscript.echo是vbs语法,相当于alert REM >是特殊字符,所以放在 for 命令里面需要使用转义符号^>,包括^&也是转义的& REM //Nologo屏弊输出:Prevent logo display: No banner will be shown at execution time for /f "tokens

Bat脚本学习-4:Oracle自动备份还原脚本

从同事那弄到一份Oracle自动备份还原的脚本,看上去很强大,苦在bat语法不熟,查了半天文档,先弄明白了一小段 @echo off REM 在批处理中,我们可以用setloacl ENABLEDELAYEDEXPANSION这个命令来启用"延迟环境变量扩展" REM 在我们启用了"延迟环境变量扩展"后,当CMD在解释涵有嵌套格式的命令时,他会把嵌套的命令一条一条的先执行一次,然后再进行匹配操作 REM 这样我们的赋值操作就会完成.并且再"延迟环境变量扩展

使用bat脚本添加JAVA_HOME和修改PATH

add_jre.bat ::添加环境变量JAVA_HOME @echo off echo 添加java环境变量 set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment set evname=JAVA_HOME set javapath=C:\jre1.8.0_101_32reg add "%regpath%" /v %evname% /d %javapath%

Bat脚本处理ftp超强案例解说

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://369369.blog.51cto.com/319630/842341 Bat脚本处理ftp超强案例解说 前言:    公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就 想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,

[转]Bat脚本处理ftp超强案例解说

Bat脚本处理ftp超强案例解说 转自:http://369369.blog.51cto.com/319630/842341   前言:   公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,几分钟内,上400台windows服务器,都可以全自动更新程序完毕,相当实用,现把当初研究BAT的

【php】读取"文件列表"按时间倒序显示,并递归显示各层目录、!

思路: 1.读取该php所在目录的文件列表,用"修改时间.文件名"做键值对,塞入数组.对"修改时间"倒序.(貌似不能直接按时间倒序读取文件列表,此处为间接方法) 2.读取的若为文件直接输出,为目录就输出目录并递归扫描其下文件. <?php //遍历当前目录下所有文件的和目录,并以树装形式显示 //1.打开目录句柄,获取句柄资源 //2.读取句柄资源,并显示当前和子目录下的(目录和文件名称) function getDirFile($path){ if(!($f

批处理bat脚本编写(附详细例子)

                                                    批处理bat脚本编写(附详细例子) 由于在项目开发的过程中经常需要编写bat脚本,而看大牛们编写的bat脚本简直一头雾水,木有办法,作为bat菜鸟的我只有通过最最简单的例子来熟悉bat脚本中的常用命令,由此来开启我的bat脚本学习之路.... 1.常用命令举例 a.创建文件夹:                         md    D:\mybat       //将在D盘下创建一个名为