ファイルにリダイレクトするときは、CMD adbシェルから追加の空白行を削除します。

ファイルにリダイレクトするときは、CMD adbシェルから追加の空白行を削除します。

私は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とオプションをサポートしているわけではありません。-Tadb

これはWindows固有のものではありません。 Unixシステムでも、adb shell "ls -l" > test.log行末に不要な追加のキャリッジリターンを持つファイルが生成されます。

関連情報