Я вывожу результаты команды оболочки 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
будет создан файл с нежелательными дополнительными символами возврата каретки в конце строк.