2

Я использую 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 и перекомпилировать?

1 ответ1

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .