
Я использую его aria2
для выполнения базовых загрузок.В документациион определяет console readout
следующий формат:
[#2089b0 400,0 КБ/33,2 МБ(1%) CN:1 DL:115,7 КБ ETA:4м51с]
Этот формат довольно удобочитаем, но поскольку он будет использоваться конечными пользователями, было бы проще просто:
400,0 КБ/33,2 МБ (1%) РВП: 4 мин 51 с
Поскольку я использую это в пакетном файле, я подумал об использовании for /f
цикла для извлечения данных и их последующего анализа. Насколько я знаю, в for /f
цикле можно использовать только статические данные, т.е. он не поддерживает форматирование вв реальном временивывод команды.
яне может показатьсячтобы найти какую-либо документацию о том, как изменить формат с помощью параметров командной строки, носуществуют ли параметры командной строки для изменения формата вывода на консоль?или мне придется создать измененную версию aria2
и перекомпилировать?
решение1
Боюсь, что изменить формат вывода данных на консоль в aria2 невозможно, нет никаких опций для управления этим.
Если вы передаете вывод aria2c
, он подавляет как чтение, так и журнал. Поэтому лучшим вариантом, вероятно, будет подавление чтения консоли с помощью--show-console-readout
опция установлена на false
.
Чтобы уменьшить количество выводимых сообщений, вы также можете уменьшить уровень журнала консоли с помощью--console-log-level
.
Чтобы контролировать частоту, с которой aria2 выводит текущую сводку загрузок, используйте--summary-interval
вариант.
Ваша команда может выглядеть так:
aria2c --show-console-readout=false --console-log-level=warn --summary-interval=5 <url>
Каждые 5 секунд aria2 будет выводить статистику загрузок. Чтобы отфильтровать другой вывод, вы можете использовать find "ETA:"
и затем проанализировать его с помощьюfor /f
.