有一个目录(用drctr
表示)。它包含许多直接后代(由drctr_1
,drctr_2
,file_1
,file_2
等表示。然后drctr_1
包含许多直接后代(由drctr_1_1
,drctr_1_2
,file_1_1
,file_1_2
等表示。
问题:给定drctr
,是否可以获取其直接后代的列表(drctr_1
,drctr_2
,file_1
,file_2
等)及其属性(即不包括drctr_1_1
,drctr_1_2
,file_1_1
,file_1_2
等)?
我尝试了attrib /d
- 如果没有额外的/s
它就无法运行,但这将包含所有子目录中的所有文件和目录。但问题是,如果算法将以递归方式检查每个子目录和文件,这将浪费大量时间而没有任何目的。
答案 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 *
也是如此。