2016-06-14 11 views
2

いくつかのSConsコマンドを実行する.batファイルを書き込もうとしていますが、最初の実行後に他のコマンドを実行せずにbashが終了することがわかりました。WindowsバッチサブルーチンからSConsを呼び出す方法は?

は、だから私はサブルーチンを作り、CALLコマンドを使用します。このサブルーチンは、すぐに私はsconsのコマンドを入れて、echo "test"内部で正しく実行している間

call :my_subroutine 
pause 
exit /b 

:my_subroutine 
    scons platform=windows -c 
    exit /b 

を、コンソールはそれができないと言います英語で...

D:\...\godot>call :my_subroutine 

D:\...\godot>scons platform=windows -c 
Le système ne trouve pas le nom de fichier de commandes - my_subroutine 

D:\...\godot>pause 
Appuyez sur une touche pour continuer... 

メッセージをmy_subroutineという名前のコマンドファイルを見つける:

The system doesn't finds the name of the commands file - my_subroutine 
[...] 
Press a key to continue... 
+0

上記のメッセージを英語に翻訳できますか?特にそれはsconsを呼び出した直後のもの? – bdbaddog

+0

最初の投稿で翻訳しました。 – Zylann

+0

はPATH内のscons.batですか? – bdbaddog

答えて

0

call sconsを使用してみてください。プラットフォーム:windows -c

+1

ヒント:コードを '\' \ ''で囲むか、4つのスペースでインデントしてポストを読みやすくすることで、コードをコードとしてフォーマットすることができます。 –

0

この動作は、の:my_subroutineサブルーチンにスキップしようとしているためです。

状況は、バッチファイルの次のペアで再現することができます

TEST.BAT

rem test.bat :start 

call :my_subroutine 
exit /b 

:my_subroutine 
    rem test.bat :my_subroutine 
    test2 
    exit /b 

test2.bat次の出力を生成

rem test2.bat :start 

exit /b 

:my_subroutine 
    rem test2.bat :my_subroutine 
    echo wtf 

>test 
>rem test.bat :start 
>call :my_subroutine 
>rem test.bat :my_subroutine 
>test2 
>rem test2.bat :my_subroutine 
>echo wtf 
wtf 
>exit /b 

コールのヘルプページ状態:

CALLコマンドは現在、CALLのターゲットとしてラベルを受け入れます。構文 は以下のとおりです。

CALL :label arguments 

新しいバッチファイルコンテキストが指定された引数で作成され、 制御が指定されたラベルの後のステートメントに渡されます。

この動作は、別のバッチファイルを呼び出した後も継続しているようです。これが解決策を知っておかなけれバイパスあなたのバッチファイルからscons.batを呼び出すために


は呼び出しを使用する(ギレルモ・メッサロペスが言うように)である。この作品を作るために

call scons platform=windows -c 
0

もう一つの方法は、明示的に呼び出すことですPythonスクリプト

python <path to scons.py> platform=windows -c 
関連する問題