批量日期时间计算是一项非常繁琐的任务。
我建议使用 PowerShell(至少作为一种工具)
获取当前目录最近 5 分钟内创建的文件。
此 powershell 命令将输出类似 dir 的列表:
Get-ChildItem -Path 'X:\path'|Where-Object {((Get-Date) - $_.LastWriteTime).TotalMinutes -le 5}
要将其限制为仅全名,您可以附加管道
| Select-Object -ExpandProperty FullName
或简单地将命令括在括号中并附加 (...).FullName
(Get-ChildItem -Path 'X:\path'|Where-Object {((Get-Date) - $_.LastWriteTime).TotalMinutes -le 5}).FullName
批量包装
:: Q:\Test\2018\11\08\SO_53206386.cmd
@Echo off
for /f "usebackq delims=" %%A in (`
powershell -Nop -C "(Get-ChildItem -Path 'X:\path' -File |Where-Object {((Get-Date) - $_.LastWriteTime).TotalMinutes -le 15}).FullName"
`) Do Echo %%A
此批次的示例输出(列表本身)
> SO_53206386.cmd
Q:\Test\2018\11\08\SO_53206386.cmd
-File 参数需要 PowerShell v3+,但可以用另一个管道命令替换
| Where-Object {!($PSISContainer)}
过滤掉文件夹。 (反面是-Directory 或者没有! 不是)
@Echo off
for /f "usebackq delims=" %%A in (`
powershell -Nop -C "(Get-ChildItem -Path 'X:\path' | Where-Object {!($PSISContainer)}| Where-Object {((Get-Date) - $_.LastWriteTime).TotalMinutes -le 15}).FullName"
`) Do Echo %%A