windows服务器bat删除指定日期的文件

windows系统自带一个命令forfiles可以根据文件的时间戳来操作文件,
forfiles /? 可以查看详细的帮助

FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy/MM/dd | dd}]
/p  “目录名” 指定搜索路径
/S   递归搜索
/C “指定要执行的命令”
/D 指定时间查找
+ yyyy/MM/dd     指定绝对时间,查找并这个日期晚的文件

–  dd                   相对当前时间,并当前时间早n天的文件

显示指定目录下超过6天没修改的文件,默认会输出文件名
forfiles /p “%bak_dir%” /S /D -6
forfiles /p “%bak_dir%” /S /D -6 -C “cmd /c echo @file”

输出完整路径

forfiles /p “%bak_dir%” /S /D -6 -C “cmd /c echo @path”

删除指定目录下最后修改时间超过6天的文件

forfiles /p “%bak_dir%” /S /D -6 /C “cmd /c del /q @file”

备份指定路径下的文件,先设置环境变量,由于不内使用两次””所以无法使用变量替换的方式引用rar.exe

IF EXIST “c:\Program Files\winrar”  set Path=;”c:\Program Files\winrar”;%SystemRoot%\system32
IF EXIST “c:\Program Files (x86)\winrar” set Path=;”c:\Program Files (x86)\winrar”;%SystemRoot%\system32
forfiles /p “%bak_dir%” /S /D -6 /C “cmd /c rar.exe a backp.rar @path”

bat获取上个月份

@echo off
setlocal EnableDelayedExpansion
pause
rem ################# 获得上个月的日期 ########################
rem 获取年度
set year=%date:~0,4%
rem 获取月份
echo 当前年份: %year%
set mounth=%date:~5,2%
echo 当前月份: %mounth%
echo #####################
if "%mounth%"=="01" (
 set /A year=%year%-1
 set /A lastmounth=01
 echo 当前年月: %year%_%mounth%
 echo **************
) else (
 rem 将当前月份减一
 echo %mounth%
 set /A lastmounth=!mounth!-1
 echo 上个月份: !lastmounth!
 rem 如果当前月份减1后,小于10 则 用零补充 例如 2 = 02
 if !lastmounth! lss 10 (
 set lastmounth=!lastmounth!
 )
 echo 上个月: %year%_!lastmounth!
)
pause
方法二

?
@echo off
rem setlocal
echo 日期:%date%
REM 分离年月日
@set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
echo this year: %year%
echo this month: %month%
echo ############# test #################
if "%month%"=="01" (
 set /A lastyear=%year%-1
 echo last year: %lastyear%
 set lastmonth=12
 echo last month: %lastmonth%
 echo last year_month: %lastyear%_%lastmonth%
 echo ############ month == 01 #############
)else (
 if "%month%"=="02" set lastmonth=01
 if "%month%"=="03" set lastmonth=02
 if "%month%"=="04" set lastmonth=03
 if "%month%"=="05" set lastmonth=04
 if "%month%"=="06" set lastmonth=05
 if "%month%"=="07" set lastmonth=06
 if "%month%"=="08" set lastmonth=07
 if "%month%"=="09" set lastmonth=08
 if "%month%"=="10" set lastmonth=09
 if "%month%"=="11" set lastmonth=10
 if "%month%"=="12" set lastmonth=11
 echo last year_month: %year%_%lastmonth%
 echo ############### month != 01 ##############
)
pause

时间: 2024-07-30 10:11:15

windows服务器bat删除指定日期的文件的相关文章

bat获取上个月份及删除指定日期的文件

bat获取上个月份 如果要在每月初备份上个月的文件就需要获取上月的月份,需要注意的是1月份的上个月是去年12月,还有就是通过当前月份-1 来获得上个月份时如果是11一下的数减1的结果需要处理.还有要注意的是在if和for中使用变量替换时最好启用延迟变量,并使其!对变量进行引用  代码如下 复制代码 ? @echo off setlocal EnableDelayedExpansion pause rem ################# 获得上个月的日期 ###################

PHP删除指定文件夹根目录指定日期之前文件

删除文件  代码如下 复制代码 file_delete = "home/meeta/my.php"; if (unlink($file_delete)) { echo "The file was deleted successfully.", "n"; } else { echo "The specified file could not be deleted. Please try again.", "n"

批处理bat删除指定天数日期之前的文件夹_DOS/BAT

[方案一]BAT + REG + VBS 复制代码 代码如下: @echo off ::演示:删除指定路径下指定天数之前(以文件夹的最后修改日期为准)的文件夹. ::如果演示结果无误,把rd前面的echo去掉,即可实现真正删除. ::本例调用了临时VBS代码进行日期计算 ::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式, ::处理完毕之后再把日期格式恢复成原来的状态. rem 指定待删除文件夹的存放路径 set SrcDir=C:/Test rem 指定天数 set

Windows Blue取消“使用指定的镜像文件恢复Windows系统”的选项?

版本号为9436的Windows Blue被曝光之后引发全球用户的疯狂,纷纷开始挖掘新系统所带来的改变.随后细心的网友发现Blue在开机启动项中已经移除了"系统镜像恢复"功能,从 下面两张截图的对比中我们可以发现Windows Blue已经没有了"使用指定的镜像文件恢复Windows系统"的选项, 这不经让我们产生了困惑:难道就不能还原自定义系统镜像? Boot options menu in Windows 8.     电脑常识 Boot options men

解决windows服务器中iis7上传大文件限制问题

原来的项目迁移至IIS7, 出现了个问题,原来有个上传大文件的功能,现在突然不能用了, 上传了一会儿会提示404错误-_-|||, 上网查了一下,发现原来是IIS7默认设置限制上传大小的原因. 方法一 在IIS7下,即便你在web.config设置了maxRequestLength="1048576"最大允许上传的大小,也是没用的,其实是受C:/Windows/System32/inetsrv/config/applicationHost.config的限制, 默认最大只能上传30M的

Windows下通过FTP自动备份数据到服务器并删除指定天数前的备份_win服务器

说明: 1.要备份的文件在D盘根目录下面,以时间命名,(一般我们通过护卫神的好备份软件实现备份)例如 D:\data_db_201112130001.BAK D:\data_db_201112140002.BAK D:\data_db_201112150003.BAK 每天会自动生成一个新的文件,例如2011年12月16号,会自动生成data_db_201112160004.BAK 2.要把D:\下面当天生成的那个数据定时备份到FTP服务器上,例如,今天是2011年12月16号,要把data_d

用批处理删除指定目录或文件

某日,友人在QQ询问本猫如何用批处理删除某一目录下的所有指定目录. 他以为我是搞系统维护的,写这个应该很简单.其实本猫只算是搞网络+硬件 维护的懒人,不过对于朋友的忙自然可以帮一下. 简单搜之,很快得到解决办法: forfiles /p e:\myprojects\  /s /m debug /c "cmd /c if @isdir == TRUE echo rd /s /q @path 以上是删除文件夹的,改成文件也很简单,最后改为 del /s /q @path 即可.

如何利用win7系统中搜索功能的快速筛选器删除指定大小的文件?

  电脑使用的时间长了,自然会出现各种各样的垃圾文件,因为归类不一的原因,咱们若是要手动删除这些垃圾文件的话,便需要一层一层的进入到win7 64位旗舰版iso的磁盘中,然后一个一个的找到它们并将它们删除掉,但是无疑的,这是一个十分浩大的工程,需要花费很长的时间,需要耗费很多的心力才能完成,不过win7旗舰版之后,很多朋友在搜索功能中发现了一个快速筛选器,也许咱们可以利用这个功能帮我们快速的删除掉一些文件.下面,小编就来说说具体的操作技巧吧! 1.首先,咱们返回到win7旗舰版的桌面位置,然后找

用VBS脚本删除指定以外的文件或文件夹_vbs

Option Explicit ''''''''''''''说明'''''''''''' '网盟-黑火制作,送给需要的朋友. '配置文件"Listfile.ini"的格式如下: '要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............ '配置文件可以有多行,以便对多个目录进行操作. '配置文件里以"/"开头的行为注释行. '排除多个内容时,使用分号";"进行分隔. '↓↓↓ 配置文件例子:↓↓↓ '/配置文件