128Kb*8 pamięci powinno wystarczyć każdemu :-) (B. Gates 1981)

czwartek, 4 marca 2010

Polecenie for

Share
Wykonuje określone polecenie dla każdego pliku w zestawie plików.
Składnia
for {%zmienna|%%zmienna} in (zestaw) do polecenie [opcje_wiersza_polecenia]
Parametry
{%zmienna|%%zmienna}
Wymagany. Reprezentuje parametr wymienny. Parametru %zmienna można używać do wykonywania polecenia for z wiersza polecenia. Parametru %%zmienna można używać do wykonywania polecenia for w programie wsadowym. Wielkość liter jest uwzględniana w zmiennych. Nazwy zmiennych muszą zawierać litery, na przykład %A, %B lub %C.
(zestaw)
Wymagany. Określa jeden lub więcej plików, katalogów, zakresów wartości lub ciągów tekstowych, które mają być przetworzone przy użyciu określonego polecenia. Nawiasy są wymagane.
polecenie
Wymagany. Określa polecenie, które ma być wykonane w przypadku każdego pliku, katalogu, zakresu wartości lub ciągu tekstowego zawartego w zestawie określonym przez parametr (zestaw).
opcje_wiersza_polecenia
Określa wszystkie opcje wiersza polecenia, które mają być użyte z określonym poleceniem.
/?
Wyświetla Pomoc w wierszu polecenia.
Spostrzeżenia
Korzystanie z polecenia for
Polecenia for można użyć w pliku wsadowym lub bezpośrednio z wiersza polecenia.
Korzystanie z parametrów wsadowych
Następujące atrybuty dotyczą polecenia for:
Polecenie for zamienia parametr %zmienna lub %%zmienna na każdy z ciągów tekstowych określonych przez parametr zestaw aż do chwili, gdy polecenie polecenie przetworzy wszystkie pliki.
Wielkość liter jest rozróżniana w nazwach określanych w parametrze zmienna polecenia for. Są to nazwy globalne, a w danej chwili można uaktywnić nie więcej niż 52 nazwy tego typu.
Aby uniknąć konfliktu z parametrami wsadowymi od %0 do %9, jako parametru zmienna można użyć dowolnego znaku z wyjątkiem cyfr od 0 do 9. W prostych programach wsadowych często wystarcza użycie pojedynczego znaku, takiego jak %%f.
W skomplikowanych plikach wsadowych można użyć wielu wartości jako parametru zmienna, aby odróżnić różne zmienne zastępowalne.
Określanie grupy plików
Parametr zestaw może reprezentować jedną grupę plików lub kilka grup plików. Aby określić zestaw plików, można używać symboli wieloznacznych (* i ?). Oto kilka przykładów prawidłowych zestawów plików:
(*.doc)
(*.doc *.txt *.me)
(sty*.doc sty*.rpt lut*.doc lut*.rpt)
(ar??1991.* ap??1991.*)
Gdy używane jest polecenie for, pierwsza wartość w zestawie zestaw zastępuje parametr %zmienna lub %%zmienna, a następnie określone polecenie przetwarza tę wartość. Ten proces jest kontynuowany aż do chwili, gdy wszystkie pliki (lub grupy plików), zgodne z wartością parametru zestaw, zostaną przetworzone.
Korzystanie ze słów kluczowych in i do
Słowa kluczowe in i do nie są parametrami, ale muszą być używane z poleceniem for. Jeżeli pominięto jedno z tych słów kluczowych, pojawi się komunikat o błędzie.
Korzystanie z dodatkowych form polecenia for
Jeżeli rozszerzenia poleceń są włączone (ustawienie domyślne), obsługiwane są następujące dodatkowe formy polecenia for:
Tylko katalogi
Jeżeli parametr zestaw zawiera symbole wieloznaczne (* i ?), polecenie określone przez parametr polecenie jest wykonywane dla każdego katalogu (zamiast zestawu plików w określonym katalogu) zgodnego z parametrem zestaw. Składnia jest następująca:
for /D {%% | %}zmienna in (zestaw) do polecenie [opcje_wiersza_polecenia]
Cyklicznie
Przegląda drzewo katalogów począwszy od [dysk:]ścieżka, wykonując instrukcję for w każdym z katalogów drzewa. Jeżeli nie określono katalogu po opcji /R, przyjmowany jest bieżący katalog. Jeżeli parametr zestaw to tylko jedna kropka (.), polecenie tylko wylicza drzewo katalogów. Składnia jest następująca:
for /R [[dysk :]ścieżka] {%% | %}zmienna in (zestaw) do polecenie [opcje_wiersza_polecenia]
Iterowanie zakresu wartości
Można użyć zmiennej iteracyjnej do ustawiania wartości początkowej (start#), a następnie przetwarzać ustawiony zakres wartości aż do chwili, gdy jedna z wartości przekroczy ustawioną wartość końcową (stop#). Opcja /L wykonuje proces iteracji, porównując parametr start# z parametrem stop#. Jeżeli parametr start# jest mniejszy niż parametr stop#, polecenie zostanie wykonane. Jeżeli zmienna iteracyjna przekracza wartość parametru stop#, powłoka polecenia przerywa wykonywanie pętli. Można również używać ujemnych wartości parametru krok# do krokowego przetwarzania zakresu zmniejszających się wartości. Na przykład dla zestawu (1,1,5) generowana jest sekwencja (1 2 3 4 5), a dla zestawu (5,-1,1) generowana jest sekwencja (5 4 3 2 1). Składnia jest następująca:
for /L {%% | %}zmienna in (start#,krok#,stop#) do polecenie [opcje_wiersza_polecenia]
Iterowanie i analizowanie plików
Mechanizmu analizowania plików można używać do przetwarzania danych wyjściowych polecenia, ciągów i zawartości pliku. Zmiennych iteracyjnych można używać do definiowania zawartości lub ciągów, które mają być badane, a różnych opcji słowa_kluczowe_analizowania można używać do dalszego modyfikowania mechanizmu analizowania. Opcji token parametru słowa_kluczowe_analizowania można używać do określania, które tokeny mają być przekazywane jako zmienne iteracyjne. Należy zauważyć, że jeżeli nie użyto opcji token, opcja /F analizuje tylko pierwszy token.
Mechanizm analizowania pliku polega na odczytaniu danych wyjściowych, ciągu lub zawartości pliku, podzieleniu tych informacji na pojedyncze wiersze tekstu, a następnie rozdzieleniu poszczególnych wierszy na zero lub większą liczbę tokenów. Pętla polecenia for jest następnie wywoływana z wartością zmiennej iteracyjnej ustawioną na wartość tokena. Opcja /F domyślnie przekazuje pierwszy token oddzielony spacją z każdego z wierszy każdego pliku. Puste wiersze są pomijane. Składnie są następujące:
for /F ["słowa_kluczowe_analizowania"] {%% | %}zmienna in (zestaw_nazw_plików) do polecenie [opcje_wiersza_polecenia]
for /F ["słowa_kluczowe_analizowania"] {%% | %}zmienna in ("ciąg_tekstowy") do polecenie [opcje_wiersza_polecenia]
for /F ["słowa_kluczowe_analizowania"] {%% | %}zmienna in ('polecenie') do polecenie [opcje_wiersza_polecenia]
Argument zestaw_nazw_plików określa jedną lub więcej nazw plików. Każdy plik jest otwierany, odczytywany i przetwarzany przed przejściem do następnego pliku w zestawie zestaw_nazw_plików. Aby zastąpić domyślne zachowanie analizowania, należy określić parametr "słowa_kluczowe_analizowania". Jest to ciąg w cudzysłowach zawierający jedno lub więcej słów kluczowych służących do określania różnych opcji analizowania.
Jeżeli używana jest opcja usebackq, należy skorzystać z jednej z następujących składni:
for /F ["usebackqsłowa_kluczowe_analizowania"] {%% | %}zmienna in ("zestaw_nazw_plików") do polecenie [opcje_wiersza_polecenia]
for /F ["usebackqsłowa_kluczowe_analizowania"] {%% | %}zmienna in ('ciąg_tekstowy') do polecenie [opcje_wiersza_polecenia]
for /F ["usebackqsłowa_kluczowe_analizowania"] {%% | %}zmienna in (`polecenie`) do polecenie [opcje_wiersza_polecenia]
Poniższa tabela zawiera listę słów kluczowych analizowania, których można użyć jako parametru słowa_kluczowe_analizowania.
Słowo kluczowe
Opis
eol=c
Określa znak końca wiersza (tylko jeden znak).
skip=n
Określa liczbę wierszy, które mają być pominięte na początku każdego pliku.
delims=xxx
Określa zestaw separatorów. Zastępuje domyślny zestaw separatorów (spacja i tabulator).
tokens=x,y,m-n
Określa, które tokeny z poszczególnych wierszy należy przekazać do bloku instrukcji for dla poszczególnych iteracji. W rezultacie przydzielane są dodatkowe nazwy zmiennych. Forma m-n to zakres tokenów oznaczonych numerami od m-tego do n-tego. Jeżeli ostatni znak w ciągu tokens= jest gwiazdką (*), przydzielana jest dodatkowa zmienna, która odbiera pozostały tekst w wierszu po zakończeniu analizy ostatniego tokena.
usebackq
Określa, że cudzysłowów można używać do wyróżniania nazw plików w parametrze zestaw_nazw_plików. Ciąg wyróżniony odwróconym cudzysłowem jest wykonywany jako polecenie, a ciąg wyróżniony pojedynczym cudzysłowem jest poleceniem ciągu tekstowego.
Podstawianie zmiennych
Modyfikatory podstawiania zmiennych polecenia for zostały rozszerzone. Poniższa tabela zawiera listę opcjonalnych składni (dla dowolnej zmiennej I).
Zmienna z modyfikatorem
Opis
%~I
Rozwija zmienną %I, usuwając wszelkie otaczające ją cudzysłowy ("").
%~fI
Rozwija zmienną %I do pełnej kwalifikowanej nazwy ścieżki.
%~dI
Rozwija zmienną %I tylko do litery dysku.
%~pI
Rozwija zmienną %I tylko do ścieżki.
%~nI
Rozwija zmienną %I tylko do nazwy pliku.
%~xI
Rozwija zmienną %I tylko do rozszerzenia nazwy pliku.
%~sI
Rozwija ścieżkę tak, aby zawierała tylko krótkie nazwy.
%~aI
Rozwija zmienną %I do atrybutów pliku.
%~tI
Rozwija zmienną %I do daty i godziny pliku.
%~zI
Rozwija zmienną %I do rozmiaru pliku.
%~$PATH:I
Wyszukuje katalogi wymienione w zmiennej środowiskowej PATH i rozwija zmienną %I do pełnej kwalifikowanej nazwy pierwszego znalezionego katalogu. Jeżeli nazwa zmiennej środowiskowej nie jest zdefiniowana lub plik nie zostanie odnaleziony podczas wyszukiwania, ten modyfikator rozwija zmienną do pustego ciągu.
Poniższa tabela zawiera listę połączeń modyfikatorów, których można używać do uzyskania złożonych wyników.
Zmienna z połączonymi modyfikatorami
Opis
%~dpI
Rozwija zmienną %I tylko do litery dysku i ścieżki.
%~nxI
Rozwija zmienną %I tylko do nazwy pliku i rozszerzenia nazwy.
%~fsI
Rozwija zmienną %I tylko do pełnej nazwy ścieżki z krótkimi nazwami.
%~dp$PATH:I
Wyszukuje katalogi wymienione w zmiennej środowiskowej PATH dla zmiennej %I i rozwija do litery dysku i ścieżki pierwszego znalezionego katalogu.
%~ftzaI
Rozwija zmienną %I do wiersza wyjściowego podobnie jak w przypadku polecenia dir.
W powyższych przykładach można zastąpić zmienną %I i PATH innymi prawidłowymi wartościami. Prawidłowa nazwa zmiennej polecenia for kończy się zapisem %~ składnia.
Używając wielkich liter w nazwach zmiennych, takich jak %I, można zwiększyć czytelność kodu i uniknąć zamieszania z modyfikatorami, które nie uwzględniają wielkości liter.
Analiza ciągu
Logiki mechanizmu analizowania polecenia for /F można użyć bezpośrednio w odniesieniu do ciągu, wpisując parametr zestaw_nazw_plików w nawiasach w pojedynczych cudzysłowach (tzn. 'zestaw_nazw_plików'). Parametr zestaw_nazw_plików jest przetwarzany jako pojedynczy wiersz danych wejściowych z pliku, a następnie jest analizowany.
Analiza danych wyjściowych
Polecenia for /F można używać do analizowania danych wyjściowych polecenia, wpisując parametr zestaw_nazw_plików jako ciąg w nawiasach z odwróconym cudzysłowem. W takim przypadku ten parametr jest przetwarzany jak wiersz polecenia, który jest przekazywany do podrzędnego programu Cmd.exe, a dane wyjściowe są przechwytywane do pamięci i analizowane, tak jak plik.
Przykłady
Aby użyć polecenia for w programie wsadowym, należy użyć następującej składni:
for %%zmienna in (zestaw) do polecenie [opcje_wiersza_polecenia]
Aby wyświetlić zawartość wszystkich plików z rozszerzeniami nazwy .doc lub .txt w bieżącym katalogu przy użyciu zmiennej %f, należy wpisać:
for %f in (*.doc *.txt) do type %f
W poprzednim przykładzie każdy plik w bieżącym katalogu, który ma rozszerzenie nazwy .doc lub .txt, jest podstawiany za zmienną %f aż do chwili, gdy zostanie wyświetlona zawartość wszystkich plików. Aby użyć tego polecenia w pliku wsadowym, należy zamienić każde wystąpienie zmiennej %f na zmienną %%f. W przeciwnym przypadku zmienna jest ignorowana i wyświetlany jest komunikat o błędzie.
Aby analizować plik, ignorując wiersze komentarzy, należy wpisać:
for /F "eol=; tokens=2,3* delims=," %i in (mój_plik.txt) do @echo %i %j %k
To polecenie analizuje każdy z wierszy w pliku Mój_plik.txt, ignorując wiersze rozpoczynające się od średnika oraz przekazując drugi i trzeci token z każdego wiersza do bloku instrukcji FOR (tokeny są oddzielane przecinkami lub spacjami). Blok instrukcji FOR odwołuje się do zmiennej %i, aby uzyskać drugi token, zmiennej %j, aby uzyskać trzeci token i zmiennej %k, aby uzyskać wszystkie pozostałe tokeny. Jeżeli podane nazwy plików zawierają spacje, należy wpisać tekst w cudzysłowach (na przykład "nazwa_pliku"). Aby korzystać z cudzysłowów, należy użyć opcji usebackq. W przeciwnym przypadku cudzysłowy są interpretowane jako definicje ciągu tekstowego do analizy.
Zmienna %i jest w sposób jawny deklarowana w instrukcji FOR, a zmienne %j i %k są w sposób niejawny deklarowane przy użyciu parametru tokens=. Można określić do 26 tokenów przy użyciu parametru tokens= pod warunkiem, że nie będzie deklarowana zmienna większa niż litera „z” lub „Z”.
Aby analizować dane wyjściowe polecenia przez umieszczenie parametru zestaw_nazw_plików w nawiasach, należy wpisać:
for /F "usebackq delims==" %i IN (`set`) DO @echo %i
To przykładowe polecenie wylicza nazwy zmiennych środowiskowych w bieżącym środowisku.

Brak komentarzy:

Prześlij komentarz

 
www.Webmaster.M106.COM