Форматирование показаний консоли в Aria2

572
samdd

Я использую aria2для выполнения основных загрузок. В документации указывается console readoutформат:

[# 2089b0 400,0 КБ / 33,2 МБ (1%) CN: 1 DL: 115,7 КБ ETA: 4 м51 с]

Этот формат довольно читабелен, но, поскольку он будет использоваться конечными пользователями, он будет проще, чем просто:

400,0 КБ / 33,2 МБ (1%) ETA: 4 м 51 с

Поскольку я использую это в пакетном файле, я подумал об использовании for /fцикла для извлечения данных и последующего их анализа. Насколько я знаю, вы можете использовать только статические данные в for /fцикле, т.е. он не поддерживает форматирование в выводе команды в реальном времени .

Кажется, я не могу найти какую-либо документацию о том, как изменить формат с помощью параметров командной строки, но существуют ли параметры командной строки для изменения формата вывода на консоль? или мне придется создать модифицированную версию aria2и перекомпилировать?

2
Может быть возможно сделать это с `for / l`, но это сложно из-за возможных проблем с синхронизацией. См. Этот ответ [Ping with timestamp] (// stackoverflow.com/a/24907186) для вдохновения. DavidPostill 7 лет назад 1
Пожалуйста, не ** не ** [кросс-пост] (https://stackoverflow.com/questions/42748913/format-console-readout-in-aria2). См. [Допускается ли перекрестная публикация вопроса на нескольких сайтах Stack Exchange, если вопрос является тематическим для каждого сайта?] (// meta.stackexchange.com/a/64069) DavidPostill 7 лет назад 0

1 ответ на вопрос

1
Alexey Ivanov

Боюсь, что вы не можете изменить формат вывода информации с консоли в 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.

Похожие вопросы