Nachdem ich zweimal auf dieses Problem gestoßen bin, dachte ich, ich würde es hier posten, um zu sehen, ob jemand weiß, wie man das schafft.
Ich kann scheinbar nicht aus verschachtelten Loops mit goto
ausbrechen, da es so aussieht, als wenn es aus der inneren Schleife ausbricht. Die Klammern stimmen dann nicht überein, weil es nie die innere schließende Schleife erreicht hat.
Ich habe das auf ein sehr einfaches Beispiel reduziert
%Vor%Dies führt zu dem Fehler
%Vor%Ich dachte, dass vielleicht das Hinzufügen von zusätzlichen Klammern das Problem lösen könnte, aber es wird nicht helfen, wenn ich nicht weiß, dass ich brechen werde, wenn es eine bedingte Pause ist, ist es das gleiche Problem.
Gibt es eine einfache Alternative zum Ausbrechen der inneren Schleife in die äußere, selbst wenn es sich um eine bedingte Unterbrechung handelt, die if
und else
verwendet?
Brechen Sie, indem Sie die innere Schleife in ein Etikett einfügen.
%Vor%Sie können auch den Rest der Iterationen nach dem Bruch mit einer Kontrollvariablen weglassen, die an FOR gebunden ist:
%Vor%Diese Methode bewahrt den Code des verschachtelten for-body an seinem ursprünglichen Platz und erlaubt es, Brüche an mehr als einem Punkt innerhalb des for-body zu setzen.
Antonio
Der Vorschlag von Antonio ist ziemlich gut. Ich habe es in meinem Beispiel verwendet, um einige CSV- oder HTML-Dateien aus einer Dateiliste zu analysieren. (für die Schleife verschachtelt). Der erste Blick analysiert die Dateiliste, der zweite analysiert den Inhalt jeder Datei. Die Separatoren sind entweder; oder /.
%Vor% DEFINED
kann für mehrere Gründe böse sein. Ich schlage nicht vor, es zu verwenden, wenn Sie nicht genau wissen, wie es funktioniert und alle möglichen Anwendungsfälle.
Es ist ratsam, keine Trennzeichen (Leerzeichen, Kommas usw.) im Variablennamen, z. B. IF DEFINED _variable wird häufig fehlschlagen, wenn der Variablenname ein Trennzeichen enthält.
Eine sicherere Antwort, die auch EXIT
oder GOTO
nicht verwendet:
Ausgabe:
%Vor%Können Sie weitere Informationen zu Ihrer Anforderung bereitstellen? In der Zwischenzeit können Sie dies versuchen, wenn es Ihrer Anforderung entspricht. halten Sie mich auf dem Laufenden, wenn Sie mehr brauchen.
%Vor%Tags und Links batch-file