【问题标题】:forfiles for specific datetime特定日期时间的 forfiles
【发布时间】:2018-06-08 19:33:25
【问题描述】:

我正在尝试列出在特定日期时间之后修改的文件。例如,june 8 20:29,但我很难找到这些 forfiles 选项。 你知道日期时间选项是否可用于 forfiles 或者我应该使用不同的东西吗? 我的批处理文件在下面。

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 只能过滤日期,不能过滤时间。
  • 看看这个answer是否适合你的需要。
  • 提示:切勿将驱动器号 A:B: 用于真正的软盘驱动器以外的其他东西。由于cmd.exe 和Windows 内核句柄在某些情况下A:B: 上的文件系统访问不同,即使驱动器将这两个字母用于网络资源、USB 存储介质或硬盘很容易导致意外行为不是真正的软盘驱动器。
  • CHCP 1252 > NULL 将代码页更改为 Windows-1252 时将 %SystemRoot%\System32\chcp.com 的输出重定向到在当前目录中创建的 file NULL可能而不是通过将其重定向到设备NUL来抑制此输出。

标签: datetime batch-file for-loop forfiles


【解决方案1】:

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 天”。

【讨论】:

    猜你喜欢
    • 2011-05-03
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多