Android フォンからコンピュータにファイルをバックアップするバッチ ファイルを作成しようとしています。このプロセスの一部として、Android デバッグ ブリッジを使用して携帯電話でファイル リストをテキスト ファイルとして生成し、携帯電話をバックアップする 7zip アーカイブのファイル リストを含むテキスト ファイルと照合します。
問題は、Android デバッグ ブリッジを使用して生成されたファイル リストが正しく解析されていないように見えることです。
"C:\%USERPROFILE%\adb\adb.exe" shell ls /sdcard/TWRP/BACKUPS/0149BCAA1301701A > androidlist2.txt
"C:\Program Files\7-zip\7z.exe" l TWRPBackups.t7z > archivelist.txt
type archivelist.txt | findstr TWRP\BACKUPS\0149BCAA1301701A\ > results.txt
del archivelist.txt
setLocal EnableDelayedExpansion
FOR /F "tokens=* usebackq" %%c IN (results.txt) DO (
SET RESULT=%%c
SET RESULT=!RESULT:~83!
REM Writes the trimmed line to the output file
ECHO !RESULT!>>"archivelist2.txt"
)
findstr /V /L \ archivelist2.txt >> archivelist.txt
findstr /V /L * androidlist2.txt >> androidlist.txt
del results.txt
del archivelist2.txt
findstr /vixg:"archivelist.txt" androidlist.txt > discrepancies.txt
for /f "tokens=*" %%j in (discrepancies.txt) do (
"C:\%USERPROFILE%\adb\adb.exe" pull /sdcard/TWRP/BACKUPS/0149BCAA1301701A/%%j/ TWRP/BACKUPS/0149BCAA1301701A/%%j
)
私のコードがひどいクラッジであることは承知しています。私はこれが初めてです。しかし、最初の 2 行で行っているのは、携帯電話の Android シェルと 7zip アーカイブからそれぞれファイル リストをテキスト ファイルとしてプルすることです。その後、ファイル名だけを残すように両方をトリミングし、テキスト ファイルの不一致を比較します。
問題は最後のステップです。discrepancies.txt を読み取り、関連ファイルを電話から取得します。手動で discrepancies.txt に移動して改行を置き換えると (各行の末尾に移動し、削除を押し、Enter キーを押します)、ファイルが正しく解析されることに気付きました。この問題を回避または修正するにはどうすればよいですか?