0

バッチ ファイルで関数を呼び出します。関数がフローの続きを終了した後、バッチ ファイルの最後にあるタグ END に移動すると、関数 aa を呼び出して zi を出力するスペースに戻ります。

 :b  
 call :aa 1
 echo zi
 call :rr
 **goto end**



:aa
if...(
goto b)else(
goto end

:end
echo finish
4

1 に答える 1

2

この質問はあまり意味がありません。最初は、あなたの言っていることを理解するのに苦労していますが、コードを見ると明らかなことがいくつかあります。

  1. ラベルは:labelではなくと書かれていlabel:ます。したがってb:、ドライブを変更するだけで、aa:構文end:が無効になります。

  2. サブルーチンを呼び出すと、すべての「バッチ ファイルの終了」条件が「サブルーチンからの戻り」を意味するようになります。これには、ファイルの終わりgoto :eofexit /b. 通常、サブルーチンは で終了し、通常のプログラム フローの後でサブルーチンが実行されるのを避けるために、すべてのサブルーチンの上goto :eofに同様のものを使用する必要もあります。

  3. 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
    
于 2012-11-08T07:20:24.583 に答える