2012-02-29 9 views
2

なぜ2番目のforループは実行されませんか?何が間違っているのですか?最初のループは正常に動作しますが、2番目のループは決してヒットしません。最初のループの後にecho文を置いても表示されません。連続する2つのforループは実行されません

FOR /D %%X in (..\Apps\Mine\*) do if exist "%%X\AndroidManifest.xml" ("%1\android.bat" update project -p "%%X") else (
echo This is not an android project. 
) 

FOR /D %%Y in (..\Apps\Theirs\*) do if exist "%%Y\AndroidManifest.xml" ("%1\android.bat" update project -p "%%Y") else (
echo This is not an android project. 
) 

詳細

現在の作業ディレクトリには、名前には()やスペースがありません。

Windows7 64bit。

これは私が使用しています正確な引数です:

> update_project.bat C:\Users\MyUserName\android-sdks\tools 

バッチスクリプトのすべての内容です。そこには何もありません。

ここにディレクトリ構造があります。バッチスクリプトはCWDから実行されます。

  • プロジェクト
    • アプリ
      • 鉱山
        • App1の
        • App2の
      • かれら
        • のAp APP4
        • P3
    • ツール(CWD)
+0

は 'Theirs'は、サブディレクトリがありますか? – Benoit

+0

はい。ちょうど '私のように。詳細に例を追加します。 – prolink007

+0

おそらく '%1'に括弧が含まれていますか? 'プログラムファイル(x86)'のように? – Benoit

答えて

3

"%1\android.bat"の前でCALLのステートメントを追加します。 CALLを使用しない場合、制御は"%1\android.bat"から返されません。このよう

FOR /D %%X in (..\Apps\Mine\*) do if exist "%%X\AndroidManifest.xml" (CALL "%1\android.bat" update project -p "%%X") else (
echo This is not an android project. 
) 

FOR /D %%Y in (..\Apps\Theirs\*) do if exist "%%Y\AndroidManifest.xml" (CALL "%1\android.bat" update project -p "%%Y") else (
echo This is not an android project. 
) 
+0

しかし、私はこのようにしなければなりませんでした。(CALL "%1 \ android.bat"プロジェクトの更新-p "%% X") '。 'CALL'が引用符の外側にあるところ。ありがとう – prolink007

+0

@ prolink007おっと...はい、 'CALL'は引用符の外にあるはずです。私は答えを決めた。 – aphoria

+0

笑、私たちはすべて機会に "おっと"します。他のものよりもいくつか。 **自己のポイント** – prolink007

関連する問題