如何使用Apache Ant exec任务记录cmd tree命令的输出?

时间:2010-05-10 14:27:38

标签: ant cmd exec

我正在尝试使用ant使用以下命令记录cmd tree命令的输出:

    <exec dir="${basedir}" executable="cmd" output="output.txt">
        <arg value="tree" />
    </exec>

但是,我在“output.txt”中看到以下内容:

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

当我在windows cmd中运行命令时:

    C:\tree>tree 

我得到类似的东西:

    C:\tree
        └───test
            └───test

有人能告诉我如何编写Ant脚本将树结构打印到文件中吗?

2 个答案:

答案 0 :(得分:4)

您尝试执行tree.com。来自documentation of exec

  

[...]特别是,如果你不放一个   仅限可执行文件的文件扩展名   寻找“.EXE”文件,而不是   “.COM”,“。CMD”或其他文件类型   列在环境变量中   PATHEXT。那仅用于   外壳

您需要明确地致电tree.com

<exec dir="${basedir}" executable="tree.com" output="output.txt" />

另一种方法是指定/C的{​​{1}}参数,这对我有用:

cmd

答案 1 :(得分:1)

(猜测一下,我不是Ant用户)

如果要输入

cmd tree

进入命令提示符时,您也看不到

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

如何执行tree

<exec dir="${basedir}" executable="tree" output="output.txt"/>