0

以下命令行列出了当前目录和所有子文件夹中的每个 .JS文件,而不仅仅是我预期的在过去 10 天内最后修改的文件。

FORFILES /S /D -10 /M *.js /C "cmd /c echo @path"

而此命令仅列出.JS2/20/2022 或之后修改的文件。

FORFILES /S /D 2/20/2022 /M *.js /C "cmd /c echo @path"

任何想法为什么使用该选项/D -10不会产生预期的输出?

4

1 回答 1

0

在命令提示符窗口中执行以forfiles /?在 Windows 上显示使用帮助结果,语言为English US ,但为用户帐户配置了区域/国家/格式German (Austria)/D ,用于输出中的选项:

选择最后修改日期大于等于(+),或者小于等于(-)的文件,指定日期使用“dd.MM.yyyy”格式;或选择最后修改日期大于或等于 (+) 当前日期加上“dd”天,或小于或等于 (-) 当前日期减去“dd”天的文件。有效的“dd”天数可以是 0 - 32768 范围内的任何数字。如果未指定,“+”将作为默认符号。

日期格式取决于地区。

dd.MM.yyyy方法:

  1. 月中的日期,两位数,即01to 31
  2. 点是月中日和月之间的分隔符。
  3. 带两位数的月份,即01to 12
  4. 点是月份和年份之间的分隔符。
  5. 带有四位数字的世纪年份,如2022.

以国际日期格式指定日期在yyyy-MM-dd我的 PC 上出现错误消息:

错误:指定的日期无效。
输入“FORFILES /?” 供使用。

为了更好地理解一些例子:

forfiles /D 13.08.2021
forfiles /D +13.08.2021

这将输出最后修改日期更新(大于)或等于2021 年8 月 13的所有文件系统条目(文件和目录名称) 。

forfiles /D -13.08.2021

这将输出最后修改日期早于(小于)或等于2021 年8 月 13的所有文件系统条目(文件和目录名称) 。

forfiles /D -10

这将输出上次修改日期早于(小于)或等于2022 年2 月 16(当前日期为 2022 年 2 月 26日的所有文件系统条目(文件和目录名称26.02.2022)。

forfiles /D 10
forfiles /D +10

这将输出上次修改日期更新(大于)或等于2022 年3 月 8(当前日期为 2022 年 2 月 26日的所有文件系统条目(文件和目录名称26.02.2022)。如果当前日期是正确的,那么这样的日期规范在大多数情况下没有多大意义,因此具有未来日期的文件/文件夹很可能根本不存在。因此,这样的日期规范通常会导致错误消息:

错误:未找到具有指定搜索条件的文件。

更多提示:

  1. 文件/文件夹名称始终是包含在"其中的输出,例如在批处理文件中使用时需要了解:

    @echo off
    echo The following files are older than nine days:
    echo/
    for /F "delims=" %%I in ('%SystemRoot%\System32\forfiles.exe /D -10 2^>nul') do if not exist "%%~I\" echo     %%I
    
  2. 即使使用 option ,文件/文件夹名称也不会随路径一起输出/S
    因此,使用 FORFILES 选项而不是使用FORFILES选项来捕获forfilesfor /F的输出以更有效地进一步处理文件/文件夹对于使用选项在当前目录的子目录中分别搜索FORFILES选项指定的目录是没有意义的。cmd.exe/C/S/P

  3. 不带选项的FORFILES的使用毫无意义,因为在这种情况下,使用Windows 命令处理器cmd/D内部命令总是更有效,而且绝对更好。

  4. forfiles.exe默认情况下,在 Windows XP 和较旧的 Windows 客户端版本上不存在。forfiles.exe在 Windows Server 2003 的 Windows system32 目录中,可以将其复制到装有 Windows XP 的 PC 的 Windows system32 目录中。Windows Server 2003 使用与 Windows XP 相同的内核。
    顺便说一句: Windows Server 2003choice.exerobocopy.exeWindows system32 目录也可以复制到 Windows XP 的 Windows system32 目录,因为在 Windows XP 上默认也不存在。

PS:目录用于文件系统,如 NTFS、FAT12、FAT16、FAT32、exFAT 具有属性的文件d

于 2022-02-26T18:55:40.773 回答