Datetime 用于特定日期时间的文件
我试图列出在特定日期时间后修改的文件。例如,Datetime 用于特定日期时间的文件,datetime,batch-file,for-loop,forfiles,Datetime,Batch File,For Loop,Forfiles,我试图列出在特定日期时间后修改的文件。例如,june 8 20:29,但我很难找到forfiles的这些选项。 你知道forfiles是否有datetime选项,或者我应该使用不同的选项吗? 下面是我的批处理文件 NET USE b: /DELETE NET USE b: "\\networkddrive\users\username" /PERSISTENT:YES CHCP 1252 > NULL forfiles /p b:\ /s /m *.txt /d +"06/08/2018
june 8 20:29
,但我很难找到forfiles的这些选项。
你知道forfiles是否有datetime选项,或者我应该使用不同的选项吗?
下面是我的批处理文件
NET USE b: /DELETE
NET USE b: "\\networkddrive\users\username" /PERSISTENT:YES
CHCP 1252 > NULL
forfiles /p b:\ /s /m *.txt /d +"06/08/2018 14:22" /c "cmd /c echo @path @fdate @ftime" > "b:\listfiles.txt"
forfiles
将不处理时间部分,只处理日期。
我建议使用Powershell脚本:
param (
[string]$ds=((Get-Date).AddDays(-10)).ToString()
)
$dt=(Get-Date $ds)
Get-ChildItem -Path "B:\" -Filter "*.txt" | Where {($_.LastWriteTime -ge $dt)} | Sort-Object LastWriteTime,Name
将此脚本存储在*.ps1文件中以运行它。(可选)参数是可以解释为日期的字符串,如“1.4.2017 17:00”。任意默认值为“现在减去10天”。
对于文件
只能根据日期而不是时间进行筛选。查看这是否符合您的需要。提示:不要将驱动器号A:
和B:
用于真正的软盘驱动器以外的其他驱动器。将这两个字母用于网络资源,USB存储介质或硬盘很容易导致意外行为,因为cmd.exe
和Windows内核句柄在某些情况下,文件系统对A:
和B:
的访问不同,即使驱动器不是真正的软盘驱动器。CHCP 1252>NULL
重定向%SystemRoot%\System32\chcp.com
将代码页更改为Windows-1252,以在当前目录中创建空文件(如果可能),而不是通过将其重定向到设备NUL来抑制此输出。