Komento: "FOR" on päällä Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. saatavilla
Esimerkit komennosta "FOR"
The
`FOR`Windowsin komentokehotteessa olevaa komentoa käytetään erätiedostojen silmukointiin. Tässä on joitain esimerkkejä:
Esimerkki 1: Tiedostojen selaaminen hakemistossa:
FOR %G IN (hakemistosta\*) DO ECHO %G
Description: Tämä komento tulostaa kunkin määritetyn hakemiston tiedoston nimen.
Esimerkki 2: Tietyn tiedostotunnisteen sisältävien tiedostojen selaaminen:
FOR %G IN (hakemistosta\*.txt) DO ECHO %G
Kuvaus: Tulostaa kunkin määritetyn hakemiston tekstitiedoston nimen.
Esimerkki 3: Tiedostojen iterointi rekursiivisesti alihakemistoissa:
FOR /R hakemistosta %G IN (*.txt) DO ECHO %G
Kuvaus: Kulkee rekursiivisesti kaikki määritetyn hakemiston alihakemistot ja tulostaa kunkin tekstitiedoston nimen.
Esimerkki 4: Tietyn alueen lukujen selaaminen:
FOR /L %G IN (1,1,10) DO ECHO %G
Kuvaus: Tulostaa numerot väliltä 1-10.
Esimerkki 5: Merkkien kiertäminen merkkijonossa:
FOR %G IN ("Hei") DO ECHO %G
Kuvaus: Tulostaa sanan
"Hei" jokaisen kirjaimen.
Esimerkki 6: Tiedoston sisällön selaaminen rivi riviltä:
FOR /F "tokens=*" %G IN (tiedosto.txt) DO ECHO %G
Kuvaus: Toistaa tiedoston
"File.txt" rivit ja tulostaa jokaisen rivin.
Esimerkki 7: Iterointi ympäristömuuttujien kautta:
FOR %G IN (%PATH%) DO ECHO %G
Kuvaus: Toistuu ympäristömuuttujan polkujen kautta
`PATH`ja tulostaa jokaisen polun.
Esimerkki 8: Käyttö`SET`ketjussa:
FOR %G IN (1 2 3) DO SET /A Määrä=%G * 2 & ECHO Kaksinkertainen %G On %Määrä%
Kuvaus: Asettaa muuttujan
`Määrä`kaksinkertaiseksi silmukan nykyiseen numeroon ja tulostaa tämän.
Esimerkki 9: Iterointi alihakemistojen ja tiedostojen kautta:
FOR /R %G IN (*) DO ECHO %G
Kuvaus: Kulkee rekursiivisesti kaikki nykyisen hakemiston alihakemistot ja tiedostot.
Esimerkki 10: Sisäkkäiset silmukat:
FOR %G IN (1 2) DO FOR %H IN (A B) DO ECHO %G%H
Kuvaus: Sisältää kaksi silmukkaa ja tulostaa kaikki %G:n ja %H:n yhdistelmät.
Huomaa, että erätiedostoissa
`%`kautta
`%%`pitäisi vaihtaa. Esimerkiksi:
`FOR %G IN (...) DO ECHO %%G`. Suorassa kehotteessa käytetään vain yhtä prosenttimerkkiä (
`%`).
"FOR" Ote Microsoft Windowsin ohjeesta
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Suorittaa määritetyn komennon kullekin tiedostosarjan
tiedostolle.
FOR %muuttuja IN (sarja) DO komento [komennon parametrit]
%muuttuja Määrittää korvattavan parametrin (yksi merkki).
(sarja) Yksi tai useampia tiedostoja, yleismerkkejä
voidaan käyttää.
komento Määrittää kullekin tiedostolle suoritettavan
komennon.
komennon parametrit
Määrittää parametrit tai valitsimet
suoritettavalle komennolle.
Jos haluat käyttää FOR-komentoa komentojono-ohjelmassa, määritä
%%muuttuja
%muuttujan sijaan. Muuttujien nimet vaativat saman merkkikoon,
joten %i on
eri muuttuja kuin %I.
Jos komentolaajennukset ovat käytössä, seuraavia FOR-komennon
lisäominaisuuksia tuetaan:
FOR /D %muuttuja IN (joukko) DO komento [komentoparametrit]
Jos joukko sisältää yleismerkkejä, ne vastaavat kansionimiä
tiedostonimien asemesta.
FOR /R [[asema:]polku] %muuttuja IN (joukko)
DO komento [komentoparametrit]
Käy läpi kansiopuuta [asema:]polku suorittaen
FOR-käskyä jokaisessa puun kansiossa. Jos kansiota
ei ole määritetty /R-valitsimen jälkeen, oletusarvona
on nykyinen kansio. Jos joukko on vain piste (.), luetellaan
kansiopuu.
FOR /L %muuttuja IN (alku, askel, loppu)
DO komento [komentoparametrit]
Joukko on numeroiden jakso alusta loppuun askellettuna.
(1,1,5) luo jakson 1 2 3 4 5 ja (5,-1,1) luo jakson (5 4 3 2
1)
FOR /F ["asetukset"] %muuttuja IN (tiedostonimijoukko)
DO komento [komentoparametrit]
FOR /F ["asetukset"] %muuttuja IN ("merkkijono")
DO komento [komentoparametrit]
FOR /F ["asetukset"] %muuttuja IN ('komento')
DO komento [komentoparametrit]
tai, jos usebackq-asetus on käytössä:
FOR /F ["asetukset"] %muuttuja IN (tiedostonimijoukko)
DO komento [komentoparametrit]
FOR /F ["asetukset"] %muuttuja IN ('merkkijono')
DO komento [komentoparametrit]
FOR /F ["asetukset"] %muuttuja IN (`komento`)
DO komento [komentoparametrit]
Tiedostonimijoukko tarkoittaa vähintään yhtä tiedostonimeä.
Jokainen
tiedosto avataan, luetaan ja käsitellään, ennen kuin
siirrytään
seuraavaan tiedostonimijoukkoon. Käsittely sisältää tiedoston
lukemisen, jakamisen yksittäisiksi tekstiriveiksi ja
jäsentämisen
määrityksiksi. Tämän jälkeen silmukan perusosaa kutsutaan
muuttujan
arvoilla, jotka on määritetty löydettyjen
määritysmerkkijonojen mukaan.
Valitsin /F välittää oletusarvoisesti jokaisen tiedoston
rivin
ensimmäisen tyhjän määrityksen. Tyhjät rivit ohitetaan. Voit
korvata
oletusjäsennystoiminnon määrittämällä valinnaisen
"asetukset"-parametrin.
Tämä on lainausmerkein erotettu merkkijono, joka sisältää
vähintään
yhden jäsennysasetuksen määrittävän avainsanan.
Avainsanoja ovat seuraavat:
eol=c - Määrittää rivin lopun kommenttimerkin
(vain kerran).
skip=n - Määrittää tiedoston alussa ohitettavien
rivien määrän.
delims=xxx - Määrittää erotinjoukon. Tämä korvaa
oletuserotinjoukon (väli ja sarkain).
tokens=x,y,m-n - Määrittää ne rivien vuoromerkit, jotka
välitetään jokaisen iteraation
perusosaan.
Tämä aiheuttaa lisämuuttujanimien
varaamisen.
m-n-muoto on alue, joka määrittää
vuoromerkkien m
ja n väliset vuoromerkit. Jos tokens=-
merkkijonon
viimeinen merkki on tähtimerkki,
komento varaa
lisämuuttujan. Lisämuuttuja
vastaanottaa tekstin,
joka riville jää viimeisen jäsennetyn
vuoromerkin
jälkeen.
usebackq - Määrittää uuden semantiikan, missä
kokolainausmerkkien sisällä oleva
merkkijono
toteutetaan komentona, ja
puolilainausmerkkien
sisällä oleva merkkijono on täsmällinen
merkkijonokomento, jossa tiedostonimet
voidaan
kirjoittaa kokolainausmerkkien sisään
tiedostonimijoukossa.
Esimerkkejä:
FOR /F "eol=; tokens=2,3* delims=, " %i in (oma.txt) do @echo %i
%j %k
Jäsentää jokaisen Oma.txt-tiedoston rivin ohittaen rivit,
jotka
alkavat puolipisteellä sekä välittää jokaisen rivin toisen ja
kolmannen merkinnän perusosaan siten, että merkinnät on
erotettu
toisistaan pilkuilla tai väleillä. Huomaa perusosan
käskyviittaus
%i toisen merkinnän hakemiseksi, %j kolmannen merkinnän
hakemiseksi
ja %k kolmannen merkinnän jälkeisten merkintöjen hakemiseksi.
Välejä
sisältävissä tiedostonimissä, sinun on sijoitettava
tiedostonimet
kokolainausmerkkien sisään. Jotta lainausmerkkejä voitaisiin
käyttää
tällä tavalla, myös usebackq-vaihtoehtoa on käytettävä.
Muuten
kokolainausmerkkien välissä oleva teksti tulkitaan
täsmälliseksi
merkkijonoksi.
%i on määritetty eksplisiittisesti FOR-komennossa, %j ja %k
on
epäsuorasti määritetty tokens=-vaihtoehdon avulla. Voit
määrittää
jopa 26 merkintää tokens=-rivillä. Muuttujaa, joka on
suurempi
kuin kirjain z tai Z, ei kuitenkaan voi määrittää. Ota
huomioon,
että FOR-muuttujat koostuvat yhdestä kirjaimesta, kirjainkoko
on
merkitsevä, muuttujat ovat yleisiä eikä niitä voi olla
samanaikaisesti
aktiivisena enempää kuin 52.
Voit käyttää FOR /F -komentoa myös peräkkäisten merkkijonojen
jäsentämiseen muodostamalla tiedostonimijoukkoja sulkeiden
sisään käyttämällä kokolainausmerkkejä. Niitä käsitellään
yksittäisinä jäsennettyinä tiedoston syöteriveinä.
Voit käyttää FOR /F -komentoa myös tulostekomennon
jäsentämisessä
muodostamalla tiedostonimijoukon sulkeiden sisään käyttämällä
kokolainausmerkkejä. Merkkijonoa käsitellään komentorivinä,
joka
välitetään Cmd.exe-alitiedostolle. Tulostus siepataan ja
jäsennetään tiedostona. Seuraava esimerkki:
FOR /F "usebackq delims==" %i IN (`joukko`) DO @echo %i
luettelee nykyisen ympäristön ympäristömuuttujanimet.
FOR-muuttujaviittauksien korvauksia on parannettu.
Voit käyttää nyt seuraavia valinnaisia syntakseja:
%~I - Laajentaa %I-merkinnän poistamalla kaikki
ympäröivät lainausmerkit (").
%~fI - Laajentaa %I-merkinnän FQN-polkunimen.
%~dI - Laajentaa vain %I-merkinnän aseman kirjaimen.
%~pI - Laajentaa vain %I-merkinnän polun.
%~nI - Laajentaa vain %I-merkinnän tiedostonimen.
%~xI - Laajentaa vain %I-merkinnän tiedostotunnisteen.
%~sI - Laajennettu polku sisältää vain lyhyitä nimiä.
%~aI - Laajentaa %I-merkinnän tiedostomääritteet.
%~tI - Laajentaa %I-merkinnän tiedoston päivämäärän ja
ajan.
%~zI - Laajentaa %I-merkinnän tiedostokoon.
%~$PATH:I - Etsii PATH-ympäristömuuttujassa luetellut
hakemistot
ja laajentaa %I-merkinnän ensimmäisen löydetyn
FQN-nimen. Jos ympäristömuuttujaa ei ole
määritetty
tai etsintä ei löydä tiedostoa, tämä muuttuja
laajennetaan tyhjäksi merkkijonoksi.
Määritteet voidaan yhdistää, jotta saadaan yhdistelmätulokset:
%~dpI - Laajentaa vain %I-määritteen aseman kirjaimen
ja polun.
%~nxI - Laajentaa vain %I-määritteen tiedostonimen ja
laajennuksen.
%~fsI - Laajentaa vain %I-määritteen lyhyet nimet ja
täydelliset
polkunimet.
%~dp$PATH:I - Etsii %I-määritteen PATH-ympäristömuuttujassa
luetellut hakemistot ja laajentaa ensimmäisen
löydetyn
aseman kirjaimen ja polun.
%~ftzaI - Laajentaa %I-määritteen hakemistoluettelon
tulostusrivin
muodossa.
Yllä olevissa esimerkeissä %I ja PATH voidaan korvata millä
tahansa
kelvollisella arvolla. Kelvollinen FOR-muuttujanimi keskeyttää
%~-syntaksin. Isojen kirjaimien käyttäminen muuttujanimissä
(esimerkiksi %I) tekee niistä luettavampia ja estää niiden
sekoittamisen määritteisiin, joissa kirjainkoko ei ole
merkitsevä.
Tärkeää tietoa, vinkkejä "FOR"-komennolle
Kun käytät
`FOR`-komento Windowsin komentokehotteessa, on muutamia tärkeitä huomioitavia seikkoja:
1.
Syntaksi erätiedostoissa: Jos sinulla on
`FOR`komento erätiedostossa, sinun on
`%`kautta
`%%`korvike. Esimerkiksi:
`FOR %%G IN (...) DO ECHO %%G`.
2.
Muuttujien käyttö: Yleensä käytät muuttujia (esim.
`%%G`) kohdassa
`FOR`- Loop tallentaaksesi arvot. Huomaa, että muuttujat eivät voi käyttää määritettyjä arvoja silmukan ulkopuolella.
SET Variable=Alkuarvo
FOR %%G IN (Arvo1 Arvo2) DO SET Variable=%%G
ECHO %Variable%
Tässä tulee
`%Variable%`pitää arvo
"alkuarvo", koska
`SET`-Opetus erikseen
`FOR`silmukka suoritetaan.
3.
Välyt poluissa tai tiedostonimissä: Jos polut tai tiedostonimet sisältävät välilyöntejä, polku tai tiedostonimi tulee laittaa lainausmerkkeihin sen varmistamiseksi, että ne tulkitaan oikein.
FOR %%G IN ("Hakemisto välilyönneillä\Tiedosto välilyönnillä.txt") DO ECHO %%G
4.
Vaihtoehdot`FOR /F`-Loop: Jos
`FOR`yhteydessä
`/F`vaihtoehto (esim.
`FOR /F "tokens=*" %%G IN (tiedosto.txt) DO ECHO %%G`), sinun on tiedettävä tiedoston syntaksi
`tokens`ja
`delims`Säädä asetuksia huolellisesti saadaksesi halutut tulokset.
5.
Sisäkkäiset silmukat: Sisäkkäisten silmukoiden kohdalla sinun on varmistettava, että niitä käytetään oikein
`%`tai
`%%`kiinnitä huomiota sen varmistamiseen, että muuttujiin viitataan oikeassa silmukassa.
FOR %%G IN (1 2) DO (
ECHO Ulompi silmukka: %%G
FOR %%H IN (A B) DO ECHO Sisäinen silmukka: %%H
)
6.
Tiedostorivien loppu sisään`FOR /F`: Jos sinä
`FOR /F`Jos haluat iteroida tiedoston rivien yli, oletusarvoisesti jokainen rivi ensimmäiseen välilyöntiin tai sarkaimeen asti katsotaan tunnukseksi. Voit tehdä tämän vaihtoehdolla
`delims`säätää.
FOR /F "tokens=* delims=" %%G IN (tiedosto.txt) DO ECHO %%G
7.
Päivämäärä- ja aikamuuttujavaihtoehdot: Jos sinulla on
`%DATE%`- tai
`%TIME%`-Muuttujat yhdessä
`FOR`- Loop, sinun tulee kiinnittää huomiota järjestelmän alueelliseen asetukseen, koska muoto voi vaihdella.
8.
Iterointi UTF-8-koodattujen tiedostojen läpi:`FOR /F`komennolla voi olla vaikeuksia iteroida UTF-8-koodattuja tiedostoja. Tällaisissa tapauksissa voi olla parempi käyttää muita työkaluja, kuten
`FINDSTR`käyttää.
On tärkeää ottaa huomioon käyttötapauksesi erityisvaatimukset ja
`FOR`- Säädä lenkki vastaavasti. Sinä pystyt
`FOR /?`komentokehotteessa nähdäksesi täyden ohjeen ja kaikki käytettävissä olevat vaihtoehdot.