Windows批处理 - 获取目录结构

时间:2021-02-08 12:55:40

首先附上遍历所有磁盘的代码:

@echo off

mkdir .\%computername%
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
if exist %
%i:\ (
echo Traversing disk %%i, Please wait...
tree /f %
%i:\>.\%computername%\%%i.txt
)
)

echo.
echo complete, press anykey to exit...
pause>nul

rem bat文件一般可读性都有点差,但是又不难理解,我就不在其中加注释了。

运行该程序后,所在文件夹下会建立一个以计算机名命名的文件夹,并且在其中会保存你所有磁盘的目录结构(耗时可能稍长)。

至于作用,见仁见智,我就不举例了(隐藏文件不会显示)。

另一种实用的方式是

@echo off

tree /f %1>%1.txt

pause

只要将文件夹拖入这个bat程序,文件夹所在的目录下就会生成一个与文件夹同名的txt文本来保存目录树。直接运行文件则会在当前目录下建立”.txt”文件,得到当前目录的目录树。这样如果要向别人展示文件目录结构时,也就用不着截图了。

但是上述方式都是遍历到底层的,如果说有一个文件夹,我需要得到它下面的文件和目录名称,但是不需要其子文件夹下的文件和目录呢?

@echo off>%1.txt

for /f "delims=" %%a in ('dir %1 /b') do (
echo %~1\%%a>>%1.txt
)

pause

同样是拖入目录和直接运行都可以。

代码都比较简单,但是实用性还是很强的。