Windows-besturingssysteem biedt MS-DOS vanaf eenvoudige dagen na de oprichting. MS-DOS is een platform over het algemeen gebruikt als een command line. MD-DOS heeft veel functies die programmeermogelijkheden bieden. In deze tutorial zullen we for
lus zoeken die looping en Enumeratie mogelijkheden biedt voor de opdrachtregel.
Help about for loop kan get zijn zoals hieronder.,
$ for /?
Syntax
For loop have the following syntax.
FOR %variable IN (set) DO command
-
FOR
specifies the loop -
%variable
used to store value for each step in the loop -
IN (set)
used to provide list for looping., Dit kan een bestandenlijst, gebruikerslijst of iets anders zijn -
DO command
wordt gebruikt om opdrachten uit te voeren voor elke stap
Tel getallen en druk
We zullen beginnen met een eenvoudig voorbeeld. We zullen gewoon een lijst afdrukken die nummers van 1 tot 5 bevat . In elke stap is één element in de lijst ingesteld op variabele en de variabele zal worden afgedrukt met echo
Commando.,
$ for %i IN (1,2,3,4,5) DO echo %i
zoals we kunnen zien wordt elke stap in de lus uitgevoerd als een apart Commando .
commando uitvoeren voor elk bestand
vorig voorbeeld heeft geen voordeel voor dagelijkse operaties. Systeembeheerders willen over het algemeen een commando uitvoeren op de meerdere bestanden accounts op een eenvoudige manier. We zullen bestanden in de huidige map afdrukken met echo
Commando.,
$ for /F %i in ("dir /b *") do echo %i
commando uitvoeren voor elke gebruiker
We kunnen ook commando ‘ s uitvoeren voor elke gebruiker. Wij zullen de gebruikerslijst verstrekken omdat er geen praktische manier is om gebruikerslijst in ms-dos op een geschikte manier te produceren. We zullen gebruikerslijst ismail, jack, administrator
geven . We zullen informatie over deze gebruikers weergeven met net user
Commando.,
$ for %i in (ismail,jack,administrator) do net user %i
we krijgen alle gebruikersinformatie gemakkelijk zonder één voor één te typen.
commando uitvoeren voor elke Computer
We zullen het commando ping uitvoeren voor elk IP-adres of hostnaam die door de lijst wordt opgegeven. Ons voorbeeld IP-lijst is 192.168.122.1 , 192.168.122.6
.,
$ for %i in (192.168.122.1 , 192.168.122.66) do ping %i
Read List From File
in vorige voorbeelden hebben we twee methoden om te genereren lijst. Een methode is het uitvoeren van commando en het verstrekken van de opdracht resultaat als een lijst aan voor loop. Een andere methode is het opschrijven van de lijst elementen een voor een. Er is een andere manier om lijst te verstrekken. Lijsten elementen kunnen worden gelezen uit het bestand.
in dit voorbeeld lezen we lijstelementen uit bestand met de naam hosts.txt
.
hosts.,txt
192.168.122.1192.168.122.66google.com
We geven de /F
in de lus om uit het bestand te lezen.
$ for /F %i in (hosts.txt) do ping %i
kolomnummer opgeven in een bestand
Er is een voorbeeld van geavanceerd gebruik met een bestand. Het opgegeven bestand kan meer dan één kolom bevatten die is afgebakend met verschillende scheidingstekens. Gespecificeerde kolommen kunnen voorzien voor lus als lijst element.
in dit voorbeeld hebben we een bestand met gebruikersnamen en gerelateerde informatie., This information is delimited with ,
. We will provide user names by specifying related column.
users.txt
ismail,baydanjohn,backadministrator,windows
$ for /F "tokens=1 delims=," %i in (users.txt) do net user %i