ファイルにリダイレクトされたときに、CMD adb シェルから余分な空白行を削除します。

ファイルにリダイレクトされたときに、CMD adb シェルから余分な空白行を削除します。

ADB.exe 経由で MS-Windows cmd を使用して、Android シェル コマンドの結果をファイルに出力しています。

正しい結果が出力されますが、各結果の間に余分な行が表示されます。対話型コマンドでは正常に見えますが (余分な行はありません)、ファイルに保存すると追加の行が表示されます。

ファイル出力を表示するために 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行末に不要な余分な改行が含まれるファイルが作成されます。

関連情報