Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Minden fájlhoz futtat egy megadott parancsot egy fájlkészleten belül.
Syntax
for {%% | %}<variable> in (<set>) do <command> [<commandlineoptions>]
Parameters
| Parameter | Description |
|---|---|
{%% \| %}<variable> |
Required. Helyettesíthető paramétert jelöl. Egyetlen százalékjellel (%) hajtsa végre a for parancsot a parancssorban. Használjon dupla százalékjeleket (%%) a for parancs végrehajtásához egy kötegfájlban. A változók megkülönböztetik a kis- és nagybetűket, és betűrendes értékkel kell ábrázolni őket, például %a, %bvagy %c. |
(<set>) |
Required. Egy vagy több fájlt, könyvtárat vagy szöveges sztringet vagy értéktartományt határoz meg, amelyen futtatni szeretné a parancsot. A zárójelek megadása kötelező. |
<command> |
Required. Megadja az egyes fájlokon, könyvtárakon vagy szöveges karakterláncokon, illetve a készletben szereplő értéktartományokon végrehajtani kívánt parancsot. |
<commandlineoptions> |
Megadja a megadott paranccsal használni kívánt parancssori beállításokat. |
| /? | Súgó megjelenítése a parancssorban. |
Remarks
Ezt a parancsot egy kötegfájlban vagy közvetlenül a parancssorból is használhatja.
A for parancsra a következő attribútumok vonatkoznak:
Ez a parancs a megadott készletben lévő összes szöveges sztringet lecseréli
% variable, vagy%% variablemindaddig, amíg a megadott parancs nem dolgozza fel az összes fájlt.A változónevek megkülönböztetik a kis- és nagybetűket, globálisak, és egyszerre legfeljebb 52 lehet aktív.
A kötegparaméterekkel
%0%9való összetévesztés elkerülése érdekében a 0-tól9-ig terjedő számok kivételével bármilyen karaktert használhat a változóhoz. Egyszerű kötegfájlok esetén egyetlen karakter, például%%fegy karakter fog működni.Az összetett kötegfájlokban több változót is használhat a különböző cserélhető változók megkülönböztetésére.
A beállított paraméter egyetlen fájlcsoportot vagy több fájlcsoportot jelölhet. Helyettesítő karakterek (* és ?) használatával megadhat egy fájlkészletet. Az alábbi érvényes fájlkészletek:
(*.doc) (*.doc *.txt *.me) (jan*.doc jan*.rpt feb*.doc feb*.rpt) (ar??1991.* ap??1991.*)A parancs használatakor a set első értéke helyettesíti
% variablea vagy%% variableértéket, majd a megadott parancs feldolgozza ezt az értéket. Ez addig folytatódik, amíg a beállított értéknek megfelelő összes fájl (vagy fájlcsoport) feldolgozásra nem kerül.Az In és a do nem paraméterek, de ezzel a paranccsal kell használnia őket. Ha kihagyja valamelyik kulcsszót, hibaüzenet jelenik meg.
Ha a parancsbővítmények engedélyezve vannak (ez az alapértelmezett), a következő további for-formák támogatottak:
Csak címjegyzékek: Ha a set helyettesítő karaktereket (* vagy ?) tartalmaz, a megadott parancs minden olyan könyvtárban (a megadott könyvtárban lévő fájlkészlet helyett) fut, amely megfelel a set-nek. A szintaxis a következő:
for /d {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]Rekurzív: Végigjárja a meghajtó:path könyvtárfát, és végrehajtja a for utasítást a fa minden könyvtárában. Ha az /r után nincs megadva könyvtár, akkor az aktuális könyvtárat használja gyökérkönyvtárként. Ha a set csak egyetlen pont (.), akkor csak a könyvtárfát számba veszi. A szintaxis a következő:
for /r [[<drive>:]<path>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]Értéktartomány iterálása: Iteratív változóval állítsa be a kezdőértéket (start#), majd lépkedjen végig egy értéktartományon, amíg az érték meg nem haladja a beállított záróértéket (end#). /l az iteratív végrehajtást a start# és az end# összehasonlításával hajtja végre. Ha a start# kisebb, mint az end#, a parancs végrehajtásra kerül. Ha az iteratív változó meghaladja a end# értéket, a parancshéj kilép a hurokból. A negatív lépés# használatával csökkenő értékekkel is végigléphet egy tartományon. Az (1,1,5) például az 1 2 3 4 5 sorozatot, az (5,-1,1) pedig az 5 4 3 2 1 sorozatot hozza létre. A szintaxis a következő:
for /l {%%|%}<variable> in (<start#>,<step#>,<end#>) do <command> [<commandlineoptions>]Iterálás és fájlelemzés: A parancskimenet, a sztringek és a fájltartalom feldolgozásához használjon fájlelemzést. Iteratív változókkal definiálhatja a vizsgálni kívánt tartalmat vagy sztringeket, és a különböző parsingkeywords beállításokkal tovább módosíthatja az elemzést. A parsingkeywords token beállítással megadhatja, hogy mely jogkivonatokat kell iteratív változóként átadni. Ha a token opció nélkül használja, a /f csak az első tokent vizsgálja meg.
A fájlelemzés a kimenet, a sztring vagy a fájltartalom beolvasásából, majd az egyes szövegsorokbe való feltörésből és az egyes sorok nulla vagy több jogkivonatba való elemzéséből áll. A for ciklust ezután a rendszer a jogkivonatra beállított iteratív változóértékkel hívja meg. Alapértelmezés szerint a /f az egyes fájlok minden sorából átadja az első üres elválasztott jogkivonatot. A program kihagyja az üres sorokat.
A szintaxisok a következők:
for /f [<parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in (<literalstring>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in ('<command>') do <command> [<commandlineoptions>]A set argumentum egy vagy több fájlnevet ad meg. Minden fájl megnyitása, olvasása és feldolgozása a készlet következő fájljára lépés előtt történik. Az alapértelmezett elemzési viselkedés felülbírálásához adja meg a parsingkeywords értéket. Ez egy idézett sztring, amely egy vagy több kulcsszót tartalmaz a különböző elemzési beállítások megadásához.
Ha a usebackq beállítást használja, használja az alábbi szintaxisok egyikét:
for /f [usebackq <parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>] for /f [usebackq <parsingkeywords>] {%%|%}<variable> in ('<literalstring>') do <command> [<commandlineoptions>] for /f [usebackq <parsingkeywords>] {%%|%}<variable> in (`<command>`) do <command> [<commandlineoptions>]Az alábbi táblázat a kulcsszavak elemzéséhez használható elemzési kulcsszavakat sorolja fel.
Keyword Description eol= <c>A sor végének karakterét adja meg (csak egy karaktert). skip= <n>Megadja a fájl elején kihagyandó sorok számát. delims= <xxx>Elválasztókészletet ad meg. Ez felülírja az alapértelmezett szóköz- és tabulátorkészletet. tokens= <x,y,m-n>Megadja, hogy az egyes sorok mely tokenjeit kell átadni az egyes iterációk for ciklusának. Ennek eredményeképpen további változónevek lesznek lefoglalva. m-n egy tartományt határoz meg az mth-től az n-ediktokenig. Ha a tokens= karakterlánc utolsó karaktere csillag (*), a rendszer egy további változót foglal le, és az utolsó elemzett jogkivonat után megkapja a sorban fennmaradó szöveget. usebackq Azt adja meg, hogy parancsként futtasson egy visszaírt sztringet, használjon egy idézőjeles sztringet literális sztringként, vagy szóközöket tartalmazó hosszú fájlnevek esetén engedélyezze a fájlnevek <set>használatát a két idézőjelek közé.Változó helyettesítés: Az alábbi táblázat az opcionális szintaxist sorolja fel (az I. változók esetében):
Változó módosítóval Description %~IKibontás, %Iamely eltávolítja a környező idézőjeleket.%~fI%ITeljes elérési útnévre bont.%~dI%ICsak meghajtóbetűjelre bont.%~pI%ICsak egy elérési útra bont.%~nI%ICsak fájlnévre bont.%~xI%ICsak fájlnévkiterjesztésre bontható ki.%~sIKibontja a csak rövid neveket tartalmazó elérési utat. %~aIKibontja %Ia fájl fájlattribútumait.%~tIKibontja %Ia fájl dátumát és időpontját.%~zIKibontja %Ia fájl méretét.%~$PATH:IMegkeresi a PATH környezeti változóban felsorolt könyvtárakat, és kiterjeszti %Ia talált első könyvtár teljes nevére. Ha a környezeti változó neve nincs definiálva, vagy a keresés nem találja a fájlt, ez a módosító az üres sztringre bővül.Az alábbi táblázat az összetett eredmények lekéréséhez használható módosító kombinációkat sorolja fel.
Változó kombinált módosítókkal Description %~dpI%ICsak meghajtóbetűjelre és elérési útra bont.%~nxI%ICsak fájlnévre és kiterjesztésre bontható ki.%~fsI%ICsak rövid névvel rendelkező teljes elérésiút-névre bont.%~dp$PATH:IMegkeresi a PATH környezeti változóban %Ifelsorolt könyvtárakat, és kibontja az első talált meghajtóbetűjelet és elérési utat.%~ftzaIKibontja %Ia dir-hez hasonló kimeneti sorra.A fenti példákban más érvényes értékekkel helyettesítheti
%Ia PATH értéket. Az érvényes változónév befejezi a %~ szintaxist.Ha például
%Inagybetűs változóneveket használ, olvashatóbbá teheti a kódot, és elkerülheti a kis- és nagybetűket megkülönböztető módosítókkal való összetévesztést.
Sztring elemzése: Az elemzési logikát egy közvetlen sztringen használhatja
for /f, ha becsomagolja<literalstring>a következőt: dupla idézőjelek (usebackq nélkül ) vagy egyetlen idézőjelben ( usebackq használatával) – például (MyString) vagy (MyString).<literalstring>egy fájl egyetlen bemeneti soraként kezeli. Dupla idézőjelek<literalstring>elemzésekor a parancsszimbólumok, például a (\ & | > < ^) szokásos karakterekként lesznek kezelve.Kimenet elemzése: A
for /fparanccsal elemezheti a parancs kimenetét úgy, hogy a zárójelek közé idézőjelet<command>helyez. A rendszer parancssorként kezeli, amelyet egy gyermek Cmd.exetovábbít. A kimenetet a rendszer a memóriába rögzíti, és fájlként elemzi.
Examples
A kötegfájlban való használathoz használja a következő szintaxist:
for {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]
Ha az aktuális könyvtárban lévő összes olyan fájl tartalmát meg szeretné jeleníteni, amelynek kiterjesztése .doc vagy .txt a cserélhető változóval %f, írja be a következőt:
for %f in (*.doc *.txt) do type %f
Az előző példában az aktuális könyvtárban található .doc vagy .txt kiterjesztésű fájlok helyettesítik a %f változót, amíg az összes fájl tartalma meg nem jelenik. Ha ezt a parancsot kötegfájlban szeretné használni, cserélje le a %f minden előfordulását a következőre:%%f. Ellenkező esetben a rendszer figyelmen kívül hagyja a változót, és hibaüzenet jelenik meg.
Ha egy fájlt szeretne elemezni, figyelmen kívül hagyva a megjegyzés sorait, írja be a következőt:
for /f "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
Ez a parancs elemzi az egyes sorokat myfile.txt. Figyelmen kívül hagyja a pontosvesszővel kezdődő sorokat, és átadja a második és a harmadik tokent az egyes sorokból a for törzsbe (a tokeneket vessző vagy szóköz választja el). A for utasítás törzse a második jogkivonat lekéréséhez %i, a harmadik jogkivonat lekéréséhez%j%k pedig az összes fennmaradó jogkivonat lekéréséhez . Ha a megadott fájlnevek szóközöket tartalmaznak, használjon idézőjeleket a szöveg körül (például Fájlnév). Idézőjelek használatához a következőt kell használnia: usebackq. Ellenkező esetben az idézőjelek úgy lesznek értelmezve, hogy egy literális sztringet határoznak meg az elemzéshez.
%i explicit módon deklarálva van a for utasításban. %j és %k implicit módon deklarálva vannak a tokens= használatával. A tokens= használatával legfeljebb 26 jogkivonatot adhat meg, ha ez nem tesz kísérletet a z vagy z betűnél magasabb változó deklarálására.
Ha egy parancs kimenetét a zárójelek közé helyezve szeretné elemezni, írja be a következőt:
for /f "usebackq delims==" %i in (`set`) do @echo %i
Ha egy könyvtár összes fájljának rekurzív ciklusát szeretné végrehajtani, beleértve az alkönyvtárakat és a teljes elérési utat, amikor legutóbb módosították őket, és a fájlméretüket, írja be a következőt:
for /r "C:\My Dir\" %A in (*.*) do echo %~ftzA