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
)

我知道我的代码很糟糕。我是新来的。但是我在前两行中所做的是将文件列表作为文本文件,分别从我手机的 android shell 和 7zip 存档中提取。之后,我把它们都删掉了,只留下文件名,并比较文本文件是否有差异。

问题是最后一步,读取 discrepancy.txt 并从手机中提取相关文件。我注意到,如果我手动转到 discrepancies.txt 并替换换行符(转到每行的末尾,按删除,按回车),文件就会正确解析。如何避免或解决此问题?

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 回答