FOR

polecenie systemu operacyjnego DOS, które służy do wykonywania określonego polecenia dla wszystkich plików ze zbioru plików.Składnia polecenia wygląda tak:

FOR %zmienna IN (zbiór) DO polecenie [parametry_polecenia]
%zmienna – określa jednoliterowy parametr wymienny.
(zbiór) – określa zbiór – jeden lub kilka plików. Używanie symboli wieloznacznych jest dozwolone.
polecenie – określa polecenie, które ma być wykonane dla każdego pliku.
parametry_polecenia – określa parametry lub opcje dla określonego polecenia.

Aby użyć polecenia FOR w programie wsadowym, wpisz %%zmienna zamiast%zmienna. W nazwach zmiennych rozróżnia się małe i wielkie litery, tak więc %i różni się od %I.

Przy włączonych rozszerzeniach poleceń obsługiwane są następujące dodatkowe formy polecenia FOR:
FOR /D %zmienna IN (zbiór) DO polecenie [parametry-polecenia]
Jeśli “zbiór” zawiera symbole wieloznaczne, to mają być poszukiwane odpowiednie nazwy katalogów, a nie nazwy plików.

FOR /R [[dysk:]ścieżka] %zmienna IN (zbiór) DO polecenie [parametry-polecenia]
Wędruje po drzewie katalogów poczynając od katalogu [dysk:]ścieżka, wykonując polecenie FOR w każdym katalogu tego drzewa. Jeśli po /R nie podano żadnego katalogu, to używany jest katalog bieżący. Jeśli “zbiór” jest określony tylko przez pojedynczy znak kropki (.), to polecenie wyliczy tylko zawartość drzewa katalogów.

FOR /L %zmienna IN (początek,krok,koniec) DO polecenie [parametry-polecenia]
W tym przypadku zbiór jest ciągiem liczb od wartości “początek” do wartości “koniec”, zmieniających się o wartość “krok”. Tak więc (1,1,5) generuje ciąg 1 2 3 4 5, a (5,-1,1) generuje ciąg (5 4 3 2 1)FOR /F ["opcje"] %zmienna IN (zbiór plików) DO polecenie [parametry-polecenia]
FOR /F ["opcje"] %zmienna IN ("ciąg") DO polecenie [parametry-polecenia]
FOR /F ["opcje"] %zmienna IN ('polecenie') DO polecenie [parametry-polecenia]
lub, jeśli obecna jest opcja usebackq:
FOR /F ["opcje"] %zmienna IN (zbiór plików) DO polecenie [parametry-polecenia]
FOR /F ["opcje"] %zmienna IN ('ciąg') DO polecenie [parametry-polecenia]
FOR /F ["opcje"] %zmienna IN (`polecenie`) DO polecenie [parametry-polecenia]
zbiór plików jest jedną lub wieloma nazwami plików. Każdy plik jest otwierany, odczytywany i przetwarzany przed przejściem do następnego pliku z tego zbioru. Przetwarzanie polega na odczytaniu pliku, podzieleniu go na poszczególne wiersze tekstu i podzieleniu każdego wiersza na zero lub więcej leksemów. Wówczas wywoływane jest główne polecenie pętli, przy czym jako wartości zmiennych są przypisywane ciągi znalezionych leksemów. Domyślnie opcja /F przekazuje pierwszy oddzielony spacją leksem z pierwszego wiersza każdego pliku. Puste wiersze są pomijane. Można zmienić domyślny sposób podziału wierszy określając opcjonalny parametr “opcje”. Jest to ciąg umieszczony w cudzysłowie, który zawiera jedno lub więcej słów kluczowych określających różne parametry podziału. Dostępne są następujące słowa kluczowe:
eol=c – określa znak komentarza końca wiersza (tylko jeden)
skip=n – określa liczbę wierszy do pominięcia na początku pliku.
delims=xxx – określa zestaw ograniczników. Zastępuje domyślny zestaw ograniczników (spację i tabulator).
tokens=x,y,m-n – określa tokeny, które mają być przekazywane z każdego wiersza do głównego polecenia w każdej iteracji. Spowoduje to przydzielenie dodatkowych nazw zmiennych. m-n oznacza zakres, czyli tokeny od m-tego do n-tego. Jeśli ostatni znak ciągu tokens= jest gwiazdką, wówczas przydzielana jest dodatkowa zmienna, która otrzymuje pozostały tekst z wiersza po przydzieleniu ostatniego tokenu.
usebackq – określa, czy wymuszane są nowe semantyki, gdzie ciąg w odwrotnych apostrofach jest wykonywany jako polecenie, a ciąg w apostrofach jest literałem polecenia i zezwala na użycie cudzysłowów dla nazw plików w zbiór plików.

Przykłady, które mogą pomóc:FOR /F "eol=; tokens=2,3* delims=, " %i in (mójplik.txt) do @echo %i %j %k
– analizuje każdy wiersz w pliku mójplik.txt, ignorując wiersze rozpoczynające się od średnika, przekazuje drugi i trzeci token z każdego wiersza do głównego polecenia, z tokenami rozdzielonymi przecinkami i/lub spacjami. Zauważ, że dla głównego polecenia odwołanie instrukcji %i pobiera drugi token, %j trzeci token, a %k pobiera wszystkie pozostałe tokeny po trzecim. Dla nazw plików zawierających spacje, należy stosować cudzysłowy. Aby używać cudzysłowów w ten sposób, należy również użyć opcji usebackq, bo w przeciwnym razie cudzysłowy będą interpretowane do analizy jako ciąg literalny.
%i jest deklarowane jawnie w instrukcji, a %j i %k są jawnie deklarowane poprzez opcję tokens=. Można określić do 26 tokenów za pomocą wiersza tokens=, nie próbując zadeklarowania zmiennej większej niż litera “z” lub “Z”. Pamiętaj, że zmienne FOR są jednoliterowe, uwzględniają wielkość liter, są globalne i nie można mieć ich aktywnych więcej niż 52 w tym samym czasie.
Można również użyć logicznego analizowania FOR /F na ciągu natychmiastowym umieszczając w apostrofach zbiór plików między nawiasami. Będzie to potraktowane jako pojedynczy wiersz wyjścia z pliku i przeanalizowane.
Na koniec, można też użyć polecenia FOR /F do analizy wyjścia polecenia. Dokonuje się tego umieszczając w odwrotnych apostrofach zbiór plików między nawiasami. Będzie to potraktowane jako wiersz polecenia, który jest przekazywany do podrzędnego programu CMD.EXE lub COMMAND.COM. Wyjście jest wtedy przechwytywane do pamięci i analizowane jakby był to plik.

Zobacz następujący przykład:FOR /F "usebackq delims==" %i IN (`zbiór`) DO @echo %iwyliczy nazwy zmiennych środowiskowych w bieżącym środowisku.

Ponadto, zostało ulepszone podstawianie odwołań zmiennej FOR. Możesz teraz używać następującej opcjonalnej składni:
%~I – rozwija %I usuwając wszystkie obejmujące cudzysłowy (“)
%~fI – rozwija %I do pełnej nazwy ścieżki
%~dI – rozwija %I tylko do litery dysku
%~pI – rozwija %I tylko do ścieżki
%~nI – rozwija %I tylko do nazwy pliku
%~xI – rozwija %I tylko do rozszerzenia pliku
%~sI – rozwinięta ścieżka zawiera tylko krótkie nazwy
%~aI – rozwija %I do atrybutów pliku
%~tI – rozwija %I do daty/czasu pliku
%~zI – rozwija %I do rozmiaru pliku
%~$PATH:I – przeszukuje katalogi wymienione w zmiennej środowiskowej PATH i rozwija %I do pełnej nazwy dla pierwszej znalezionej. Jeśli nazwa zmiennej środowiskowej nie została zdefiniowana lub pliku nie znaleziono w wyszukiwaniu, modyfikator rozwija do pustego ciągu.

Modyfikatory mogą być łączone w celu uzyskania złożonych wyników:
%~dpI – rozwija %I tylko do litery dysku i ścieżki
%~nxI – rozwija %I tylko do nazwy pliku i rozszerzenia
%~fsI – rozwija %I tylko do pełnej nazwy ścieżki z krótkimi nazwami
%~dp$PATH:i – przeszukuje katalogi wymienione w zmiennej środowiskowej PATH i rozwija %I do litery dysku i ścieżki dla pierwszej znalezionej
%~ftzaI – rozwija %I do DIR jak wiersz wyjściowy

W powyższych przykładach %I i PATH można zastąpić innymi prawidłowymi wartościami. Składnia %~ jest zakończona prawidłową nazwą zmiennej FOR. Stosowanie dużych liter dla nazw zmiennych, jak np. %I czyni je czytelniejszymi i zapobiega myleniu z modyfikatorami, które nie uwzględniają wielkości liter.

UWAGA: SKŁADNIA I OPIS POLECEŃ POCHODZI Z DOŁĄCZONEGO DO WINDOWS XP SYSTEMU DOS, TOTEŻ NIEKTÓRE POLECENIA BĄDŹ PRZEŁĄCZNIKI NIE BĘDĄ DZIAŁAĆ W POPRZEDNICH WERSJACH.

Użytkownicy trafili tutaj szukając: doskey do czego służy, for /f eol=# tokens=1, polecenie for, składnia komendy for, składnia polecenia for

Post navigation