批处理文件:tree / f仅列出当前目录

时间:2017-02-01 07:43:41

标签: batch-file cmd tree

我用以下代码编写了批处理文件tree.bat

set output_loc=Z:
set loc=Z:
chdir /d %loc% & tree /f > "%output_loc%\tree.txt"

假设驱动器Z:具有以下树

foo1
    file1
    file3
    file3
foo2
    file1
    file2
    tree.bat
foo1
    file1
    file2
    file3

当我运行tree.bat时,我在Z:\ tree.txt

中得到以下输出
Folder PATH listing for volume storage1
Volume serial number is C508-09ED
Z:.
    file1
    file2
    tree.bat
No subfolders exist 

如何获得整棵树?

1 个答案:

答案 0 :(得分:0)

不要像任何内部或外部命令那样命名批处理文件!否则,命令解释器就会混淆,就像你的情况一样。

首先在当前目录中搜索您正在使用的tree命令(文件名tree.com),如果未找到,则在环境变量{{1}给出的目录中搜索它}。可执行文件扩展名来自环境变量PATH。这意味着批处理文件无意中PATHEXT尝试重新运行。

此外,请关注MC NDcomment并将tree.bat替换为Z:,以指定驱动器Z:\的根目录,为{ {1}}指定驱动器的当前目录,根据您的示例(包含批处理文件的目录),它似乎是Z: