私はADB.exeを介してMS-windows cmdを使用してAndroidシェルコマンドの結果をファイルに出力しています。
正しい結果が出力されますが、各結果の間に追加の行が表示されます。インタラクティブ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
行末に不要な追加のキャリッジリターンを持つファイルが生成されます。