2013-04-22 35 views
0

我正在處理一個大的批處理文件,並且有一小部分需要幫助。我想要做以下事情。對於\ mod文件夾中的每個* .apk,請在mod /中搜索phone/system/app中的.odex版本的文件名。打印它是否存在。以下是我到目前爲止的代碼。如果我刪除了for語句並輸入了apkname而不是變量,它將起作用。但是一旦我添加了for行,它總是返回一個大於1的錯誤級別,所以它總是說它存在或不存在。非常感謝您的幫助。順便說一句批處理文件搜索android系統中的.odex文件存在/ app

@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 
) 

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 
) 
) 
+0

使用不帶/ c開關的find.exe,但如果希望搜索不區分大小寫,請添加/ i。我認爲你的主要問題是%errorlevel%應該是!errorlevel! – foxidrive 2013-04-22 21:39:30

回答

0

您這裏有一些錯誤和一些拼寫錯誤,試試這個。我知道批次,而不是adb

+0

謝謝你的幫助。我將mobile_path和ERRORLEVEL從%更改爲!它的工作。我把所有其他東西都留下了。 !apkanme!.odex只是一個讓它顯示不在那裏的測試。 – user2308928 2013-04-23 14:40:16

0

工作批次部分的最終結果如下。 @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 
    ) 
) 
相關問題