可以在FOR循环中对文件排序/排序吗?

时间:2019-06-21 17:47:43

标签: batch-file cmd

我已经进行了一些挖掘,似乎无法在任何地方找到简单的答案,也许是我在错误的地方寻找。我只想按文件的修改时间对文件进行排序,从最早到最新。这可能吗?

for %%i in (Input/*.json) do (

)

1 个答案:

答案 0 :(得分:0)

如果只希望对它们进行排序,那么DIR将是最快的路线,则可以使用FOR /F循环来解析输出。

此代码将为您指定升序日期:

FOR /F %%A IN ('
  DIR /B
  /O:D
  /A:-D 
  Input\*.json
') DO (
  ECHO(Found: "%%A"
)

/O选项更改顺序。 /O:D/OD订单日期升序(最早的最早)/O:-D/O-D订单日期降序(从新到旧)

/A选项更改所选项目的类型。 /A:-D/A-D选择文件项目/A:D/AD选择目录项。

除非与/B开关一起使用,否则/S选项仅输出文件名,以递归目录树,在这种情况下,它将输出文件路径。 / p>

唯一与此有关的问题是:

在查找子目录而不是同一目录时,不能从输出中提取任何其他FOR变量信息。

IE:您不能使用说%%~tA打印日期/时间,而%%~fA会给出错误的文件路径。

如果要求退回这些信息,则必须从DIR cmd中单独查找信息或从中获取所需信息。