我正在尝试编写一个批处理文件,将文件从我的 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 并替换换行符(转到每行的末尾,按删除,按回车),文件就会正确解析。如何避免或解决此问题?