如何获取当前目录的直接后代(目录和文件)及其属性的列表?

时间:2018-02-08 05:30:40

标签: windows batch-file cmd

有一个目录(用drctr表示)。它包含许多直接后代(由drctr_1drctr_2file_1file_2等表示。然后drctr_1包含许多直接后代(由drctr_1_1drctr_1_2file_1_1file_1_2等表示。

问题:给定drctr,是否可以获取其直接后代的列表(drctr_1drctr_2file_1file_2等)及其属性(即不包括drctr_1_1drctr_1_2file_1_1file_1_2等)?

我尝试了attrib /d - 如果没有额外的/s它就无法运行,但这将包含所有子目录中的所有文件和目录。但问题是,如果算法将以递归方式检查每个子目录和文件,这将浪费大量时间而没有任何目的。

1 个答案:

答案 0 :(得分:0)

我能想到的最简单的答案是:

@setlocal ENABLEEXTENSIONS
@rem @set prompt=$G

@rem %CD% would have been the default anyway, but set _root to whatever suits you.
@rem It can even be a parameter such as %1 for instance.
@set _root=%CD%
@for /f %%G in ('dir /b %_root%') do @attrib /D "%%G"
@pause

但是这将打印整个路径/文件名及其属性,这是attrib的默认输出。如果您有其他要求,请告诉我。

@for %G in (*) do @attrib "%G"也可以在命令行中在当前目录(仅限文件)中工作。但是,attrib *也是如此。