Hoe lus je een Windows-batchbestand in?

Wat is de syntaxis voor een FOR-lus in een Windows-batchbestand?


Antwoord 1, autoriteit 100%

FOR %%A IN (list) DO command parameters

lijst is een lijst van alle elementen, gescheiden door spaties, komma’s of puntkomma’s.

opdracht kan elke interne of externe opdracht zijn, een batchbestand of zelfs – in OS/2 en NT – een lijst met opdrachten

parameters bevat de opdrachtregelparameters voor opdracht.
In dit voorbeeld wordt het commando eenmaal uitgevoerd voor elk element in de lijst, met gebruik van parameters indien gespecificeerd.

Een speciaal type parameter (of zelfs commando) is %%A, dat achtereenvolgens door elk element uit de lijst wordt vervangen.

Van FOR-lussen


Antwoord 2, autoriteit 96%

Als je iets x keer wilt doen, kun je dit doen:

Voorbeeld (x = 200):

FOR /L %%A IN (1,1,200) DO (
  ECHO %%A
)

1,1,200 betekent:

  • Begin = 1
  • Verhoging per stap = 1
  • Einde = 200

Antwoord 3, autoriteit 38%

Type:

for /?

en u krijgt meerdere pagina’s met helptekst.


Antwoord 4, autoriteit 31%

Voer een opdracht meerdere keren voorwaardelijk uit.

  • syntaxis-FOR-Files

    FOR %%parameter IN (set) DO command 
    
  • syntaxis-FOR-Files-Rooted at Path

    FOR /R [[drive:]path] %%parameter IN (set) DO command 
    
  • syntaxis-VOOR-Mappen

    FOR /D %%parameter IN (folder_set) DO command 
    
  • syntaxis-FOR-Lijst met getallen

    FOR /L %%parameter IN (start,step,end) DO command 
    
  • syntaxis-FOR-bestandsinhoud

    FOR /F ["options"] %%parameter IN (filenameset) DO command 
    

    of

    FOR /F ["options"] %%parameter IN ("Text string to process") DO command
    
  • syntaxis-FOR-Command Resultaten

    FOR /F ["options"] %%parameter IN ('command to process') DO command
    

Het

  • Neem een ​​set gegevens
  • Maak een FOR-parameter %%G gelijk aan een deel van die gegevens
  • Voer een commando uit (optioneel gebruik de parameter als onderdeel van het commando).
  • –> Herhaal dit voor elk gegevensitem

Als u het FOR-commando op de opdrachtregel gebruikt in plaats van in een batchprogramma, gebruik dan slechts één procentteken: %G in plaats van %%G.

VOOR parameters

  • De eerste parameter moet worden gedefinieerd met een enkel teken, bijvoorbeeld de letter G.

  • FOR %%G IN

    In elke iteratie van een FOR-lus wordt de IN ( ....)-clausule geëvalueerd en %%G ingesteld op een andere waarde

    Als deze clausule resulteert in een enkele waarde, wordt %%G gelijk gesteld aan die waarde en wordt de opdracht uitgevoerd.

    Als de clausule resulteert in meerdere waarden, worden impliciet extra parameters gedefinieerd om elk te behouden. Deze worden automatisch toegewezen in alfabetische volgorde %%H %%I %%J …(impliciete parameterdefinitie)

    Als de parameter naar een bestand verwijst, kan de verbeterde variabeleverwijzing worden gebruikt om de bestandsnaam/pad/datum/grootte te extraheren.

    Je kunt natuurlijk elke letter van het alfabet kiezen, behalve %%G. maar het is een goede keuze omdat het niet in strijd is met de letters van het padnaamformaat (a, d, f, n, p, s, t, x) en de langste reeks niet-conflicterende letters biedt voor gebruik als impliciete parameters .


Antwoord 5, autoriteit 11%

FOR geeft je alle informatie die je ooit nodig zult hebben om meer te weten te komen over FOR-lussen, inclusief voorbeelden van correct gebruik.


Antwoord 6, autoriteit 9%

Probeer deze 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 is het getal dat moet worden verhoogd en num2 is de waarde die wordt toegevoegd aan num1 en terminator is de waarde waarbij de num1 zal eindigen. U kunt in deze instructie een andere waarde voor terminator aangeven (if %num1%==%terminator% goto close). Dit is de booleaanse uitdrukking goto close is het proces als de boolean waar is en goto open is het proces als de boolean onwaar is.


Antwoord 7, autoriteit 4%

@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

Antwoord 8, autoriteit 4%

Van FOR /? helpdocument:

VOOR %variabele IN (set) DO commando [command-parameters]

%variable Specificeert een vervangbare parameter van één letter.
(set) Specificeert een set van een of meer bestanden. Er kunnen jokertekens worden gebruikt.
opdracht Specificeert de opdracht die voor elk bestand moet worden uitgevoerd.
opdrachtparameters
Specificeert parameters of schakelaars voor de opgegeven opdracht.

Als u het FOR-commando in een batchprogramma wilt gebruiken, geeft u in plaats daarvan %%variabele op
van %variabele. Namen van variabelen zijn hoofdlettergevoelig, dus %i is anders
van mij.

Als opdrachtextensies zijn ingeschakeld, zijn de volgende
vormen van het FOR-commando worden ondersteund:

FOR /D %variabele IN (set) DO commando [command-parameters]

If set contains wildcards, then specifies to match against directory  
names instead of file names.                                          

FOR /R [[drive:]path] %variabele IN (set) DO commando [command-parameters]

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.                               

VOOR /L %variabele IN (start,step,end) DO commando [command-parameters]

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)                                     

LEAVE A REPLY

Please enter your comment!
Please enter your name here

fourteen + twenty =

Other episodes