批处理:时间和日期处理

日期

@echo off

mode con cols=50 lines=15 & color 9f
setlocal enabledelayedexpansion 
color 0A
echo %date%
pause

在这里插入图片描述

提取年信息

@echo off

mode con cols=50 lines=15 & color 9f
setlocal enabledelayedexpansion 
color 0A
echo %date:~0,4%
pause

在这里插入图片描述

提取月份

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %date:~5,2%
pause

在这里插入图片描述

提取日信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %date:~8,2%
pause

在这里插入图片描述

提取周信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %date:~11,2%
pause

在这里插入图片描述

总结

在上面的实例中,提取年、月、日信息的过程是一致的,都是把date按照一个字符串处理的,第一个实例中显示当前的日期:2019/08/22 周四。后面的年月日周信息的截取都是针对日期字符串进行的。

时间

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %time%
pause

在这里插入图片描述

提取小时信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %time:~0,2%
pause

在这里插入图片描述

提取分钟信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %time:~3,2%
pause

在这里插入图片描述

提取秒信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %time:~6,2%
pause

在这里插入图片描述

提取毫秒信息

@echo off
mode con cols=50 lines=15 & color 9f
color 0A
echo %time:~9,2%
pause

在这里插入图片描述

总结

本该说些什么,但是想想上述几个实例都是一样的方法,因此不再多言。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是批处理脚本: ``` @echo off forfiles /p "C:\backup" /s /m *.* /d -3 /c "cmd /c del @path" ``` 说明: - `@echo off`:关闭命令的回显。 - `forfiles`:循环遍历文件。 - `/p`:指定目录。 - `/s`:递归搜索子目录。 - `/m`:指定要查找的文件名匹配模式,这里是所有文件。 - `/d -3`:指定文件创建时间超过 3 天的文件。 - `/c`:指定要执行的命令,这里是删除文件。 - `@path`:表示文件的完整路径。 请注意,上面的代码仅适用于 Windows 系统。如果您使用的是其他系统,请查找相应的命令。 ### 回答2: 实现上述功能,可以使用批处理脚本来进行操作。以下是一个可以实现删除/备份目录下创建时间超过3天的文件的批处理脚本: ```batch @echo off set "target_dir=C:\path\to\your\directory" // 设置目标目录 set cutoff_date=%date% powershell -command "& { $limit=(Get-Date).AddDays(-3); Get-ChildItem '%target_dir%' -Recurse | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | ForEach-Object { $_.FullName } }" >archive.txt for /f "delims=" %%G in (archive.txt) do ( echo %%G REM 备份操作 xcopy "%%G" "C:\path\to\backup\directory" REM 删除操作 del "%%G" /q /f ) del archive.txt ``` 解释说明: 1. 首先,我们需要将目标目录设置为“target_dir”。将其替换为你要操作的目标目录的实际路径。 2. 接下来,使用PowerShell命令来获取目标目录中所有创建时间早于3天的文件的路径,并将其输出到一个名为“archive.txt”的文件中。 3. 然后,使用for循环逐行读取“archive.txt”文件中的每个文件路径,并执行相应的操作。 - 若要备份文件,可以使用“xcopy”命令,将文件复制到一个备份目录中,将"C:\path\to\backup\directory"替换为你要备份到的实际路径。 - 若要删除文件,可以使用“del”命令,删除文件,其中“/q”参数表示安静模式(不显示确认提示),“/f”参数表示强制删除只读文件。 4. 最后,删除“archive.txt”文件。 请注意,此脚本使用了PowerShell命令来获取创建时间早于3天的文件的路径。因此,确保你的系统支持PowerShell。如果不支持PowerShell,可以使用其他方法来实现相同的功能。 ### 回答3: 批处理是一种用来自动执行一系列命令的脚本。您可以编写一个批处理来删除或备份目录下创建时间超过3天的文件。 下面是一个简单的批处理示例,用于删除/backup目录下创建时间超过3天的文件: ```batch @echo off setlocal set "backup_dir=C:\backup" set "days=3" for /f "delims=" %%a in ('dir /b /a:-d-h-s "%backup_dir%\*" ^| findstr /r /i /l /c:"^[^ ]* *[0-9]* \[/][0-9]*.*"') do ( for /f "usebackq tokens=2,* delims= " %%b in (`dir /T:C "%backup_dir%\%%a" ^| findstr /v "^[^0-9]"`) do ( call :comparedate "%%b %%c" if !datediff! gtr %days% ( echo Deleting file: "%%a" del "%backup_dir%\%%a" /F ) ) ) endlocal goto :eof :comparedate setlocal set "targetdate=%~1" set "currdate=%date% %time%" set "targetdate=!targetdate:,=.!" set "currdate=!currdate:,=.!" for /f "tokens=1-6 delims=." %%a in ("!targetdate! !currdate!") do ( set /a "yy1=10000%%a%%10000, mm1=100%%b%%100, dd1=100%%c%%100, hh1=100%%d%%100, nn1=100%%e%%100, ss1=100%%f%%100" ) set /a "datediff=(yy1-yy)*365+(mm1-mm)*30+(dd1-dd)" endlocal & set "datediff=%datediff%" goto :eof ``` 此批处理脚本首先设置了变量`backup_dir`为备份目录的路径,设置`days`为期望超过多少天的阈值。然后,它使用`for`循环遍历`dir`命令查找到的目录下的所有文件。使用`findstr`筛选出创建日期信息。然后,批处理将获取的日期与当前日期进行比较,并计算它们之间的日期差。如果日期差大于`days`,则使用`del`命令删除文件。 使用这个批处理前,请确保将`backup_dir`设置为要处理的实际备份目录,并根据需要更改`days`参数。请注意,批处理脚本具有潜在的风险,因此,请谨慎测试和使用。 希望这对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值