我知道dir /b
仅显示文件名。 dir /b /o:-d
仅显示文件名,并按最后日期排序。
是否可以调用dir,它仅显示文件创建日期(不显示大小或名称)并从中创建.txt文件?
预期结果是这样
28/06/2019 13:13
28/06/2019 12:12
28/06/2019 11:11
....
答案 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
loop的Stephan中所示的类似方式使用answer:
for /F "tokens=1,2 eol= " %I in ('dir /A:-D /O:-D /T:C *.*') do @echo/%I %J
将eol
选项设置为 SPACE ,以排除以该字符开头的行,因为这适用于简介行和摘要行,我们不希望这样做。此方法不依赖于依赖于语言环境的字符进行过滤。
(如果您想在batch-file中使用此代码,请将每个%
更改为%%
。)
对于最后的修改日期,您可以简单地省略/T:C
部分。另外,如果您不需要对日期/时间值进行排序(降序),则可以使用简单的for
loop:
for %I in (*.*) do @echo/%~tI
~t
modifier返回最后的修改日期/时间。
请注意,以上两种方法都以与语言环境有关的方式返回日期/时间值。