Antworten:
FOR %%A IN (list) DO command parameters
list ist eine Liste aller Elemente, die durch Leerzeichen, Kommas oder Semikolons getrennt sind.
Befehl kann ein beliebiger interner oder externer Befehl, eine Batchdatei oder sogar - in OS / 2 und NT - eine Liste von Befehlen sein
Parameter enthält die Befehlszeilenparameter für den Befehl. In diesem Beispiel wird der Befehl einmal für jedes Element in der Liste ausgeführt, wobei Parameter verwendet werden, sofern angegeben.
Ein spezieller Parametertyp (oder sogar ein Befehl) ist %% A, der nacheinander durch jedes Element aus der Liste ersetzt wird.
Von FOR-Schleifen
FOR /L %x IN (1,1,100) DO ...
[ parameters ]
Sie Parens herum, wenn Sie mehrere Zeilen in Ihre for
Schleife aufnehmen möchten
Wenn Sie x-mal etwas tun möchten, können Sie dies tun:
Beispiel (x = 200):
FOR /L %%A IN (1,1,200) DO (
ECHO %%A
)
1,1,200
meint:
Art:
for /?
und Sie erhalten mehrere Seiten Hilfetext.
Führen Sie einen Befehl bedingt mehrmals aus.
Syntax-FOR-Files
FOR %%parameter IN (set) DO command
Syntax-FOR-Files-Rooted at Path
FOR /R [[drive:]path] %%parameter IN (set) DO command
Syntax-FOR-Ordner
FOR /D %%parameter IN (folder_set) DO command
Syntax-FOR-Liste der Zahlen
FOR /L %%parameter IN (start,step,end) DO command
Inhalt der Syntax-FOR-Datei
FOR /F ["options"] %%parameter IN (filenameset) DO command
oder
FOR /F ["options"] %%parameter IN ("Text string to process") DO command
Syntax-FOR-Befehl Ergebnisse
FOR /F ["options"] %%parameter IN ('command to process') DO command
Es
%%G
gleich einem Teil dieser DatenWenn Sie den FOR-Befehl nicht in einem Stapelverarbeitungsprogramm, sondern in der Befehlszeile verwenden, verwenden Sie nur ein Prozentzeichen: %G
anstelle von %%G
.
FOR-Parameter
Der erste Parameter muss mit einem einzelnen Zeichen definiert werden, z. B. dem Buchstaben G.
FOR %%G IN
...
In jeder Iteration einer FOR-Schleife wird die IN ( ....)
Klausel ausgewertet und %%G
auf einen anderen Wert gesetzt
Wenn diese Klausel zu einem einzelnen Wert führt, wird %% G gleich diesem Wert gesetzt und der Befehl ausgeführt.
Wenn die Klausel zu mehreren Werten führt, werden implizit zusätzliche Parameter definiert, die jeweils enthalten sind. Diese werden automatisch in alphabetischer Reihenfolge vergeben %%H %%I %%J
... (implizite Parameterdefinition)
Wenn sich der Parameter auf eine Datei bezieht, kann die erweiterte Variablenreferenz verwendet werden, um den Dateinamen / Pfad / Datum / Größe zu extrahieren.
Sie können natürlich einen anderen Buchstaben des Alphabets als auswählen %%G
. Dies ist jedoch eine gute Wahl, da es nicht mit Buchstaben im Pfadnamenformat (a, d, f, n, p, s, t, x) in Konflikt steht und die längste Anzahl nicht widersprüchlicher Buchstaben zur Verwendung als implizite Parameter bereitstellt .
%a%
der Name einer regulären Datei an? Es ist schwierig, Ihnen bei diesem Format zu helfen. Fühlen Sie sich frei, eine neue Frage zu stellen, nachdem Sie How to Ask gelesen haben .
So for example in a reference like %%~fG the %%G is the FOR parameter, and the ~f is the Parameter Expansion.
habe es (hier) [ ss64.com/nt/syntax-args.html] , danke. Prost Kumpel.
FOR
Hier finden Sie alle Informationen, die Sie jemals über FOR-Schleifen wissen müssen, einschließlich Beispiele zur ordnungsgemäßen Verwendung.
Versuchen Sie diesen Code:
@echo off
color 02
set num1=0
set num2=1
set terminator=5
:loop
set /a num1= %num1% + %num2%
if %num1%==%terminator% goto close
goto open
:close
echo %num1%
pause
exit
:open
echo %num1%
goto loop
num1
ist die Zahl, die erhöht werden soll, und num2
ist der Mehrwert, num1
und terminator ist der Wert, an dem der num1
Wille endet. In dieser Anweisung ( if %num1%==%terminator% goto close
) können Sie einen anderen Wert für den Terminator angeben . Dies ist der boolesche Ausdruck. Goto close ist der Prozess, wenn der Boolesche Wert wahr ist, und goto open ist der Prozess, wenn der Boolesche Wert falsch ist.
@echo off
echo.
set /p num1=Enter Prelim:
echo.
set /p num2=Enter Midterm:
echo.
set /p num3=Enter Semi:
echo.
set /p num4=Enter Finals:
echo.
set /a ans=%num1%+%num2%+%num3%+%num4%
set /a avg=%ans%/4
ECHO %avg%
if %avg%>=`95` goto true
:true
echo The two numbers you entered were the same.
echo.
pause
exit
Aus dem FOR /?
Hilfedokument:
FOR% Variable IN (gesetzt) DO-Befehl [Befehlsparameter]
% variable Gibt einen durch einen einzelnen Buchstaben ersetzbaren Parameter an.
(set) Gibt einen Satz von einer oder mehreren Dateien an. Platzhalter können verwendet werden. Befehl Gibt den Befehl an, der für jede Datei ausgeführt werden soll.
Befehlsparameter
Gibt Parameter oder Schalter für den angegebenen Befehl an.
Um den FOR-Befehl in einem Stapelverarbeitungsprogramm zu verwenden, geben Sie %% variable anstelle
von% variable an. Variablennamen unterscheiden zwischen Groß- und Kleinschreibung, daher unterscheidet sich% i
von% I.
Wenn
Befehlserweiterungen aktiviert sind, werden die folgenden zusätzlichen Formen des FOR-Befehls unterstützt:
FOR / D% Variable IN (gesetzt) DO-Befehl [Befehlsparameter]
If set contains wildcards, then specifies to match against directory
names instead of file names.
FOR / R [[Laufwerk:] Pfad]% Variable IN (gesetzt) DO-Befehl [Befehlsparameter]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
FOR / L% Variable IN (Start, Schritt, Ende) DO-Befehl [Befehlsparameter]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)