1.取得前一天的时间:
@ECHO OFF
SET YEAR=%1%
SET MONTH=%2%
SET DAY=%3%
rem SET YEAR=%date:~0,4%
rem SET MONTH=%date:~5,2%
rem SET DAY=%date:~8,2%
rem :后面这段是去掉空格的
:intercept
if "%YEAR:~-1%"==" " set "YEAR=%YEAR:~0,-1%"&goto intercept
:MONTHintercept
if "%MONTH:~-1%"==" " set "MONTH=%MONTH:~0,-1%"&goto MONTHintercept
:DAYintercept
if "%DAY:~-1%"==" " set "DAY=%DAY:~0,-1%"&goto DAYintercept
SET /A R4=%YEAR% %% 4
SET /A R100=%YEAR% %% 100
SET /A R400=%YEAR% %% 400
SET /A DAY=%DAY%-1
IF /I !DAY! EQU 0 (
IF /I %MONTH% EQU 12 SET DAY=30
IF /I %MONTH% EQU 11 SET DAY=31
IF /I %MONTH% EQU 10 SET DAY=30
IF /I %MONTH% EQU 9 SET DAY=31
IF /I %MONTH% EQU 8 SET DAY=31
IF /I %MONTH% EQU 7 SET DAY=30
IF /I %MONTH% EQU 6 SET DAY=31
IF /I %MONTH% EQU 5 SET DAY=30
IF /I %MONTH% EQU 4 SET DAY=31
IF /I %MONTH% EQU 3 (
SET DAY=28
IF /I %R100% EQU 0 (
IF /I %R400% EQU 0 (
SET BLY=1
)ELSE (
SET BLY=0
)
)ELSE (
IF /I %R4% EQU 0 (
SET BLY=1
)ELSE (
SET BLY=0
)
)
IF /I !BLY! EQU 1 SET DAY=29
)
IF /I %MONTH% EQU 2 SET DAY=31
IF /I %MONTH% EQU 1 SET DAY=31
SET /A MONTH=%MONTH%-1
IF /I !MONTH! EQU 0 (
SET MONTH=12
SET /A YEAR=%YEAR%-1
IF /I !YEAR! EQU 0 SET YEAR=-1
)
)
ECHO %YEAR%%MONTH%%DAY%*
2.连接调用三次,取得前三天的时间,并删除记录
@ECHO OFF
SET YEAR=%date:~0,4%
SET MONTH=%date:~5,2%
SET DAY=%date:~8,2%
call getLastDay.bat %YEAR% %MONTH% %DAY%
SET /p YEAR=<"YEAR.tmp"
SET /p MONTH=<"MONTH.tmp"
SET /p DAY=<"DAY.tmp"
call getLastDay.bat %YEAR% %MONTH% %DAY%
SET /p YEAR=<"%temp%YEAR.tmp"
SET /p MONTH=<"%temp%MONTH.tmp"
SET /p DAY=<"%temp%DAY.tmp"
call getLastDay.bat %YEAR% %MONTH% %DAY%
rem echo %YEAR%%MONTH%%DAY%
rem del /F /S c:aaaadddd%YEAR%%MONTH%%DAY%*.log
搞完这个后,有两个感觉到
1.bat 调用,不能返回参数,需要使用临时文件实现.
2.功能上还是没有unix下的强.
分享到:
相关推荐
本项目专注于删除指定文件夹路径下,当前系统时间之前第三天或之后任意天数的文件。通过修改配置文本,可以灵活设置删除的时间范围。以下是实现这一功能的关键知识点: 1. **文件系统操作**:C++标准库提供了`...
### 查找前三天改动过的文件 #### 背景与目的 本文介绍了一个简单的Java程序,该程序能够帮助用户查找指定目录下及其子目录中,在过去三天内被修改过的所有文件。这对于日常文件管理和版本控制非常有用,尤其是在...
### Linux按时间批量删除文件(删除N天前文件) 在Linux系统中,经常需要清理一些不再需要的老文件来释放磁盘空间或者维护系统的整洁。本文将详细介绍如何利用`find`命令结合其他工具来批量删除指定目录下N天之前的...
6. 最后,添加`<param name="OverwriteOldFiles" value="true" />`和`<param name="OverdueDays" value="10" />`,设置自动删除10天前的日志文件。 除了配置文件,我们还需要在代码中初始化log4net。在`LogHelper....
可以删除3天以前的文件。如今天是6.29,那么会删除6.22号以前创建的文件。不会删除到回收站
这里的21天是因为Linux的时间计算是以天为单位的,所以20天前的文件实际上是在21天之前被修改过的。 4. **-name "*.*"** `-name`选项用于指定文件名模式。`"*.*"`表示匹配所有带扩展名的文件。如果你想只针对特定...
上述命令中的`time 'sysdate-3'`表示删除在当前时间之前的第三天的归档日志文件。 4. 需要说明的是,`sysdate`代表当前系统日期和时间。如果你在不同的时区或者有不同的时间需求,可以相应地调整这个参数。`-3`是...
大概思路是,递归进入各个子目录。如果是目录,则进去子目录。如果不是,则直接进行比较日期之后,进行删除操作。 其中提取到 这个文件的准确创建日期这一... 也没有多少技术,就是方便删除超大目录下相关文件罢了。
这个批处理文件将删除目标目录路径 1 和目标目录路径 2 中三十天前的所有文件,并将执行日志写入 DelExpiredLog.log 文件中。 结论 在本文中,我们介绍了如何使用 FORFILES 命令和批处理实现自动删除过期文件的...
ORACLE自动备份数据库脚本,并删除指定天数以前,所备份的数据文件。
- 上面的命令结合了前面两个示例的功能,先删除指定目录下7天前的文件,然后再删除所有空目录。 ##### 5. 使用 forfiles 命令的详细用法 ```bat forfiles /p <目标目录名> /d <天数> /c <执行的命令> ``` **示例**...
假设我们需要删除D盘下的`DataBack`文件夹中60天前的所有`.txt`文件以及`letter\tifout`文件夹中60天前的所有`.tif`文件,可以使用以下命令: ```cmd FORFILES /P D:\DataBack /M *.txt /S /D -60 /C "cmd /c del @...
删除文件前最好确认用户是否真的希望删除,避免误删重要文件。同时,异常处理是必不可少的,以应对可能的错误情况,如进程无法结束或文件无法删除。 最后,要记住,直接删除正在运行的程序或文件可能会影响到程序的...
DeleteOldFiles(rootPath, DateTime.Now.AddDays(-7)) ' 7天前的文件将被删除 End Sub Private Sub DeleteOldFiles(ByVal dirPath As String, ByVal cutOffDate As DateTime) Dim di As New DirectoryInfo...
前提,日志是以日期格式命名的,可以和日期比较大小,其他情况需自行调整 用户root用户创建定时任务 crontab -e 插入内容 00 01 * * * /bin/bash /home/ibps/sysscript/logbak.sh>> /home/ibps/sysscript/bklog.log...
在这个场景下,我们关注的是一个使用shell脚本来实现的自动化流程,它主要用于数据库中的表进行前一天的数据导出备份,并同时删除这些数据在当前表中的前一天版本。这个shell脚本,命名为`cron_update.sh`,通常会与...
### Linux计划任务自动删除n天前的旧文件 在日常运维工作中,经常需要对服务器上的备份文件进行管理和清理,以防止因数据量过大而占据过多的磁盘空间。本文将详细介绍如何利用Linux下的`find`命令配合计划任务...
文件定时自动删除器,可每天按时自动删除用户指定的一系列文件 公司的novell服务器上每天都有有大量的文件生成,而这些文件只当天有效,每隔三几天总要手动删除一次,这种重复性的纯手工劳动实在没什么意思,就写个...
- 在删除"windows.old"前,确保新系统运行稳定且无重要问题,因为一旦删除,就无法再回滚到旧版本。 - 如果有任何疑虑,可以先备份重要数据,以防万一。 - 定期清理"windows.old"可以保持硬盘的最佳状态,但不要过度...