バッチ ファイルで関数を呼び出します。関数がフローの続きを終了した後、バッチ ファイルの最後にあるタグ END に移動すると、関数 aa を呼び出して zi を出力するスペースに戻ります。
:b
call :aa 1
echo zi
call :rr
**goto end**
:aa
if...(
goto b)else(
goto end
:end
echo finish
バッチ ファイルで関数を呼び出します。関数がフローの続きを終了した後、バッチ ファイルの最後にあるタグ END に移動すると、関数 aa を呼び出して zi を出力するスペースに戻ります。
:b
call :aa 1
echo zi
call :rr
**goto end**
:aa
if...(
goto b)else(
goto end
:end
echo finish
この質問はあまり意味がありません。最初は、あなたの言っていることを理解するのに苦労していますが、コードを見ると明らかなことがいくつかあります。
ラベルは:labelではなくと書かれていlabel:ます。したがってb:、ドライブを変更するだけで、aa:構文end:が無効になります。
サブルーチンを呼び出すと、すべての「バッチ ファイルの終了」条件が「サブルーチンからの戻り」を意味するようになります。これには、ファイルの終わりgoto :eofとexit /b. 通常、サブルーチンは で終了し、通常のプログラム フローの後でサブルーチンが実行されるのを避けるために、すべてのサブルーチンの上goto :eofに同様のものを使用する必要もあります。
if %1>2おそらく「構文エラーですが、標準出力ストリームを標準エラーストリームにリダイレクトしています」という意味です。少なくともここでは1> was unexpected at this time.. これはほぼ期待されています。「If foo then bar else baz」と言いたい場合は、次のようにします。
if foo (
bar
) else (
baz
)
>また、バッチファイルと比較したり、バッチファイル内で比較したりすることはできません<。GTRまたはを使用する必要がありますLSS:
if %1 GTR 1 goto b else goto end