dir命令:如何仅显示日期创建的文件和其中的创建文件.txt

时间:2019-06-28 08:02:27

标签: cmd

我知道dir /b仅显示文件名。 dir /b /o:-d仅显示文件名,并按最后日期排序。

是否可以调用dir,它仅显示文件创建日期(不显示大小或名称)并从中创建.txt文件?

预期结果是这样

28/06/2019 13:13 
28/06/2019 12:12
28/06/2019 11:11 
....

2 个答案:

答案 0 :(得分:1)

您不能仅靠dir来做到这一点,但是可以使用for /f循环对其输出进行后处理:

for /f "tokens=1,2" %a in ('dir /a-d /o-d') do @echo %a %b|find ":"' 

注意:这是命令行语法。要在批处理文件中使用,请使用%%代替%

dir /a-d仅显示文件(不显示文件夹)。
|find ":"仅显示带有冒号的行(如时间12:34),从而禁止显示摘要行。
"tokens=1,2"采用前两个“单词”(由空格或制表符分隔),因此日期(第一个标记进入%a)和时间(第二个标记进入%b) 。

答案 1 :(得分:1)

dir command默认显示最后的修改日期/时间。要更改创建日期/时间,您需要添加/T:C选项。要返回日期/时间值,只能使用for /F loopStephan中所示的类似方式使用answer

for /F "tokens=1,2 eol= " %I in ('dir /A:-D /O:-D /T:C *.*') do @echo/%I  %J

eol选项设置为 SPACE ,以排除以该字符开头的行,因为这适用于简介行和摘要行,我们不希望这样做。此方法不依赖于依赖于语言环境的字符进行过滤。

(如果您想在中使用此代码,请将每个%更改为%%。)


对于最后的修改日期,您可以简单地省略/T:C部分。另外,如果您不需要对日期/时间值进行排序(降序),则可以使用简单的for loop

for %I in (*.*) do @echo/%~tI

~t modifier返回最后的修改日期/时间。

请注意,以上两种方法都以与语言环境有关的方式返回日期/时间值。