Сегодня мне нужно было добавить задачу в файл Apache Ant. Командная строка должна была выглядеть примерно так:
myprogram --param1 --param2 path\somefile 2> path\logfile
Проблема с этим заключалась в том, что, если бы я использовал что-то вроде следующего для этого
<exec executable="$(myprogram)"
<arg value="--param1">
<arg value="--param2">
<arg path="$(somefile)">
<arg value="2>">
<arg path="$(logfile)">
</exec>
все аргументы были заключены в кавычки, поэтому команда выглядела так:
myprogram "--param1" "--param2" "path\somefile" "2>" "path\logfile"
, что неплохо и особенно хорошо, если у вас есть пробелы в ваших файлах / пути, но уничтожает канал к лог-файлу (вместо этого программа думает, что есть два дополнительных файловых аргумента "2>" и "путь \ лог-файл") .
Я обошел это, вызвав вместо этого пакетный скрипт, который хочет только файлы в качестве параметров, но я удивился: возможно ли это сделать без такого обходного пути?