批处理文件以搜索android system/app中存在的.odex文件
我正在处理一个大的批处理文件,有一个小部分需要帮助。我想做以下几件事。对于\mod文件夹中的每个*.apk,在phone/system/app中搜索mod中文件名的.odex版本。打印它是否存在。下面是我到目前为止的代码。如果我删除for语句并键入apkname而不是变量,它将起作用。但是一旦我添加for行,它总是返回一个大于1的errorlevel,所以不管它是否存在,它总是说它存在。非常感谢你的帮助批处理文件以搜索android system/app中存在的.odex文件,android,search,if-statement,batch-file,find,Android,Search,If Statement,Batch File,Find,我正在处理一个大的批处理文件,有一个小部分需要帮助。我想做以下几件事。对于\mod文件夹中的每个*.apk,在phone/system/app中搜索mod中文件名的.odex版本。打印它是否存在。下面是我到目前为止的代码。如果我删除for语句并键入apkname而不是变量,它将起作用。但是一旦我添加for行,它总是返回一个大于1的errorlevel,所以不管它是否存在,它总是说它存在。非常感谢你的帮助 SETLOCAL ENABLEDELAYEDEXPANSION for /r "%~dp0"
SETLOCAL ENABLEDELAYEDEXPANSION
for /r "%~dp0"\mod %%f in (*.apk) DO (
set apkname=%%~nf
set mobile_path=/system/app
adb shell ls %mobile_path% | find /c "!apkanme!.odex" >NUL
if %ERRORLEVEL% == 0 (
echo the file exists
) else (
echo the file does not exist
)
)
您在此处遇到一些错误和打字错误,请尝试以下操作:
@echo off &SETLOCAL ENABLEDELAYEDEXPANSION
for /r "%~dp0\mod" %%f in (*.apk) DO (
set "apkname=%%~nf"
set "mobile_path=\system\app"
adb shell ls !mobile_path! | find /i "!apkname!.odex" >NUL
if !ERRORLEVEL! equ 0 (echo the file exists) else echo the file does not exist
)
顺便说一句,我知道批次,而不是adb,工作批次部分的最终结果如下@已在批处理文件的另一部分中设置了echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /r "%~dp0"\mod %%f in (*.apk) DO (
set apkname=%%~nf
set mobile_path=/system/app
adb shell ls !mobile_path! | find /c "!apkname!.odex" >NUL
if !ERRORLEVEL! == 0 (
echo the file exists
) else (
echo the file does not exist
)
)
如果希望搜索不区分大小写,请使用不带/c开关的find.exe,但添加/i。我认为您的主要问题是%errorlevel%应该是!错误等级!谢谢你的帮助。我将移动路径和错误级别从%更改为!它成功了。其他的我都没变!阿普坎姆!。odex只是一个测试,让它显示不在那里。