Удалить лишние пустые строки из оболочки CMD adb при перенаправлении в файл

Удалить лишние пустые строки из оболочки CMD adb при перенаправлении в файл

Я вывожу результаты команды оболочки Android в файл с помощью cmd MS-windows через ADB.exe.

Он выводит правильные результаты, но я получаю дополнительную строку между каждым результатом. В интерактивном cmd он выглядит нормально (без дополнительных строк), но когда он сохраняется в файл, появляются дополнительные строки.

Я использую Notepad++ для просмотра выходных данных файла. При просмотре всех символов он показывает CR (возврат каретки) в конце каждой напечатанной строки и CR LF для каждой пустой строки.

Можно ли вывести результаты в файл без дополнительных строк, и если да, то что может быть причиной этого?

Интерактивно, вывод напрямую на терминал

D:\>adb shell "ls -l"

drwxr-xr-x root     root              2009-12-31 19:00 acct
drwxrwx--x system   cache             2020-03-12 07:14 cache
lrwxrwxrwx root     root              1969-12-31 19:00 charger -> /sbin/healthd
dr-x------ root     root              2009-12-31 19:00 config

Перенаправление в файл

D:\>adb shell "ls -l" > test.log

drwxr-xr-x root     root              2009-12-31 19:00 acct

drwxrwx--x system   cache             2020-03-12 07:14 cache

lrwxrwxrwx root     root              1969-12-31 19:00 charger -> /sbin/healthd

dr-x------ root     root              2009-12-31 19:00 config

решение1

Пытаться

adb shell -T "ls -l" > test.log

или, если он жалуется, что error: device only supports allocating a pty:

adb shell "ls -l >/data/local/tmp/list"; adb pull /data/local/tmp/list test.log

Не все устройства поддерживают параметры SSH -t, -Tдаже если ваша adbклиентская программа их поддерживает.

Это не относится только к Windows: даже в системе Unix adb shell "ls -l" > test.logбудет создан файл с нежелательными дополнительными символами возврата каретки в конце строк.

Связанный контент