1

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 キーを押します)、ファイルが正しく解析されることに気付きました。この問題を回避または修正するにはどうすればよいですか?

4

1 に答える 1

0

これを試してください、役立つかもしれません:

for /f "tokens=*" %%j in (discrepancies.txt) do (
for /f "delims=" %%x in ("%%j") do (
"C:\%USERPROFILE%\adb\adb.exe" pull /sdcard/TWRP/BACKUPS/0149BCAA1301701A/%%x/ TWRP/BACKUPS/0149BCAA1301701A/%%x
))
于 2013-05-20T06:42:47.393 に答える