我正在通过 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
也会创建一个在行末尾带有不需要的额外回车符的文件。