date - 如何批量比较两个日期?
问题描述
我有一个批处理脚本来获取两个日期;文件夹之一和当前系统日期。
我想通过查看文件夹的日期是否比当前日期早 10 分钟或更短时间来专门比较两者。这实质上是检查用户是否在最多 10 分钟前修改了此文件夹。
这是我当前的代码(不完整,但基础):
@echo off
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%a/%%b/%%c)
for /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a:%%b)
setlocal enabledelayedexpansion
if exist "C:\$Recycle.Bin" (
pushd "C:\$Recycle.Bin"
for /F "delims=" %%a in ('dir /S /b S-1-*-1001 /AD') do (set "{recycle-bin-date}=%%a")
for %%a in ("!{recycle-bin-date}!") do (
Set "data=%%~ta"
)
popd
)
set date1=%mydate% %mytime%
set date2=!data!
echo Date 1 (Current): %date1%
echo Date 2 (Recycle): %date2%
pause
::We have the dates above, how do I achieve what I'm trying to do?
如果有人可以在这里帮助我,我将不胜感激。
解决方案
您可以在纯批处理中进行日期时间数学运算,但这很麻烦。
(参见Ritchie Lawrence 批处理函数库)
我建议使用 PowerShell 作为工具
PowerShell 一班轮:
[int]([datetime]::Now - (gci 'c:\$Recycle.BIN\S-1-*1001' -Force).LastWriteTime).TotalMinutes
包裹成一批
@Echo off
For /f "usebackq" %%A in (`
Powershell -NoP -C "[int]([datetime]::Now - (gci 'c:\$Recycle.BIN\S-1-*1001' -Force).LastWriteTime).TotalMinutes"
`) Do Set "AgeMinutes=%%A"
Echo Age in minutes %AgeMinutes%
推荐阅读
- javascript - 在 React 中,是否可以从不在 /src 中的本地文件中获取数据?
- python - Python Pandas 过滤器,但结果相反
- unit-testing - .toHaveBeenCalledWith Jasmine.objectContaining 部分匹配而不命名所有键
- google-api - 发现日历房间(资源)是否可以通过 Google Calendar API 预订
- cordova - cordova buildConfig 没有配置 Xcode 项目?
- c++ - 扩展 MAPI - 阅读邮件正文在每个字符后添加空格字符
- php - XAMPP 上的 TYPO3:后端的更改未/不可靠地持续
- sql - SQL Server 中的计数总和
- asp.net-mvc-4 - Razor cshtml table multiple thead tr's
- flutter - 如何停止键盘弹出问题是 TextField 颤动