重定向到文件时,从 CMD adb shell 中删除多余的空行

重定向到文件时,从 CMD adb shell 中删除多余的空行

我正在通过 ADB.exe 使用 MS-windows cmd 将 android shell 命令的结果输出到文件。

它输出正确的结果,但我在每个结果之间多了一条线。它在交互式 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也会创建一个在行末尾带有不需要的额外回车符的文件。

相关内容