Я пытаюсь зарегистрировать вывод команды дерева cmd, используя ant, со следующим:
<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 для печати древовидной структуры в файл?
Вы пытаетесь выполнить
tree.com
. Из документации exec:Вам нужно вызвать
tree.com
явно.Другой способ — указать параметр
/C
дляcmd
, вот что сработало для меня:Я думал о том, чтобы предложить
— person S.N; 10.05.2010
cmd /c
, но подумал, что было бы излишне вызывать оболочку только для вызова консольной программы. Не знал, что муравей игнорирует PATHEXT(Угадайте, я не пользователь Ant)
Если бы вы напечатали
в командной строке вы также не увидите больше, чем
Как насчет того, чтобы просто выполнить
tree
?+1
tree
— это обычное приложение командной строки (tree.com
), а не встроенная команда, поэтому нет необходимости вызыватьcmd
— person S.N; 10.05.2010Ну, я получаю следующую ошибку с предложенным подходом: Не удается запустить дерево программ: CreateProcess error=2, Система не может найти указанный файл. — person S.N; 10.05.2010
Возможно, вам придется немного изменить его. TREE [диск:][путь] [/F] [/A] Итак, исполняемый файл=TREE ${basedir} — person S.N; 10.05.2010
Или даже executable=TREE ${basedir} › ${basedir}\output.txt — person S.N; 10.05.2010
Спасибо, но я получаю ту же ошибку. Не удается запустить дерево программ C:\tree: CreateProcess error=2. Система не может найти указанный файл. — person S.N; 10.05.2010
@Johannes: Если бы я знал, насколько близок был ваш ответ, когда я опубликовал свою первую версию, я бы просто добавил комментарий к вашему
— person S.N; 10.05.2010
@Питер: я не против. Я все равно был в неправильном положении, чтобы дать правильный ответ. То, что касается расширения, безусловно, является причудой, о которой нельзя знать, если вы не используете Ant
(на самом деле, я все еще считаю это глупым, но, эй, Windows, вероятно, одна из самых странных платформ для поддержки). — person S.N; 10.05.2010
@Johannes: на самом деле я не знал об этом ограничении, наткнулся на эту часть документации при поиске причины
— person S.N; 10.05.2010