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

sobota, 6 marca 2010

Korzystanie z operatorów przekierowania poleceń

Share
Można używać operatorów do przekierowywania strumieni danych wejściowych i wyjściowych poleceń z lokalizacji domyślnych do innych lokalizacji. Lokalizacja strumienia wejściowego lub wyjściowego jest określana jako dojście.
Następująca tabela zawiera listę operatorów, których można używać do przekierowywania strumieni danych wejściowych i wyjściowych poleceń.
Operator przekierowania
Opis
>
Zapisuje dane wyjściowe polecenia w pliku lub urządzeniu, takim jak drukarka, a nie w oknie wiersza polecenia.
<
Odczytuje dane wejściowe polecenia z pliku, a nie z klawiatury.
>>
Dołącza dane wyjściowe polecenia na końcu pliku, nie usuwając informacji znajdujących się w tym pliku.
>&
Zapisuje dane wyjściowe określonego dojścia w danych wejściowych innego dojścia.
<&
Odczytuje dane wejściowe określonego dojścia i zapisuje je w danych wyjściowych innego dojścia.
|
Odczytuje dane wyjściowe określonego polecenia i zapisuje je w danych wejściowych innego polecenia. Jest również nazywany potokiem.
Dane wejściowe polecenia (tzn. dojście STDIN) są domyślnie wysyłane z klawiatury do programu Cmd.exe, a następnie program Cmd.exe wysyła dane wyjściowe polecenia (tzn. dojście STDOUT) do okna wiersza polecenia.
Następująca tabela zawiera listę dostępnych dojść.
Dojście
Numeryczny odpowiednik dojścia
Opis
STDIN
0
Dane wejściowe wysyłane z klawiatury.
STDOUT
1
Dane wyjściowe wysyłane do okna wiersza polecenia.
STDERR
2
Komunikaty o błędach wyświetlane w oknie wiersza polecenia.
UNDEFINED
3-9
Te dojścia są definiowane indywidualnie przez aplikację i są specyficzne dla poszczególnych narzędzi.
Numery od zera do dziewięciu (tzn. 0-9) reprezentują 10 pierwszych dojść. Za pomocą programu Cmd.exe można uruchomić program i przekierować dowolne z 10 pierwszych dojść programu. Aby określić używane dojście, należy wpisać jego numer przed operatorem przekierowania. Jeżeli nie zdefiniowano dojścia, domyślny operator przekierowania danych wejściowych (<) jest oznaczony numerem zero (0), a domyślny operator przekierowania danych wyjściowych (>) jest oznaczony numerem jeden (1). Po wpisaniu operatora < lub > należy określić, gdzie dane powinny być odczytywane lub zapisywane. Można podać nazwę pliku lub inne istniejące dojście.
Aby określić przekierowanie do istniejących dojść, należy użyć znaku handlowego „i” (&), po którym trzeba wpisać numer dojścia do przekierowania (czyli &nr_dojścia). Na przykład następujące polecenie przekierowuje dojście 2 (tzn. STDERR) do dojścia 1 (tzn. STDOUT):
1<&2
Duplikowanie dojść
Operator przekierowania & duplikuje dane wyjściowe lub wejściowe określonego dojścia w innym wskazanym dojściu. Na przykład aby wysłać dane wyjściowe polecenia dir oraz komunikaty o błędach do pliku Plik.txt, należy wpisać:
dir>c:\plik.txt 2>&1
Podczas duplikowania dojścia podwajane są wszystkie charakterystyki oryginalnego wystąpienia dojścia. Na przykład jeżeli dostęp do dojścia jest ograniczony tylko do zapisu, w ten sam sposób będzie ograniczony dostęp do wszystkich duplikatów tego dojścia. Nie można duplikować dojścia dostępnego w trybie tylko do odczytu w dojściu dostępnym tylko do zapisu.
Przekierowywanie danych wejściowych poleceń (<)
Aby przekierować dane wejściowe polecenia z klawiatury do pliku lub urządzenia, należy użyć operatora <. Na przykład aby pozyskać dane wejściowe polecenia sort z pliku Plik.txt, należy wpisać:
sortZawartość pliku Plik.txt pojawi się w oknie wiersza polecenia w postaci listy uporządkowanej alfabetycznie.
Operator < otwiera plik o określonej nazwie, dostępny tylko do odczytu. Jeżeli używany jest ten operator, nie można zapisywać danych w pliku. Na przykład jeżeli program jest uruchamiany za pomocą operatorów <&2, wszystkie próby odczytania dojścia 0 zawiodą, ponieważ dojście 2 początkowo jest otwierane w trybie tylko do zapisu.
Uwaga
Dojście oznaczone numerem zero to dojście domyślne operatora przekierowania danych wejściowych (<).
Przekierowywanie danych wyjściowych poleceń (>)
Prawie wszystkie polecenia wysyłają dane wyjściowe do okna wiersza polecenia. Nawet polecenia wysyłające dane wyjściowe na dysk lub do drukarki wyświetlają komunikaty i monity w oknie wiersza polecenia.
Aby przekierować dane wyjściowe polecenia z okna wiersza polecenia do pliku lub urządzenia, należy użyć operatora >. Ten operator może być używany z większością poleceń. Na przykład aby przekierować dane wyjściowe polecenia dir do pliku Lista.txt, należy wpisać:
dir>lista.txt
Jeżeli plik Lista.txt nie istnieje, program Cmd.exe utworzy go. Jeżeli plik Lista.txt istnieje, program Cmd.exe zamieni informacje znajdujące się w pliku na dane wyjściowe polecenia dir.
Aby wykonać polecenie netsh routing dump, a następnie wysłać dane wyjściowe polecenia do pliku Trasa.cfg, należy wpisać:
netsh routing dump>c:\trasa.cfg
Operator > otwiera określony plik w trybie tylko do zapisu. W przypadku korzystania z tego operatora nie można więc odczytywać pliku. Na przykład jeżeli program uruchomiono przy użyciu operatora przekierowania >&0, zawiodą wszystkie próby zapisu w dojściu 1, ponieważ dojście 0 początkowo jest otwierane w trybie tylko do odczytu.
Uwaga
Dojście oznaczone numerem jeden to dojście domyślne operatora przekierowania danych wyjściowych (>).
Używanie operatora <& do przekierowywania danych wejściowych i duplikowania
Aby użyć operatora przekierowania danych wejściowych <&, należy określić istniejący plik. Jeżeli plik wejściowy istnieje, program Cmd.exe otwiera go w trybie tylko do odczytu i wysyła znajdujące się w nim znaki jako dane wejściowe polecenia, podobnie jak dane wejściowe z klawiatury. Jeżeli podano dojście, program Cmd.exe duplikuje określone dojście w istniejącym dojściu w systemie.
Na przykład aby otworzyć plik Plik.txt jako dane wejściowe odczytywane dla dojścia 0 (tzn. STDIN), należy wpisać:
Aby otworzyć plik Plik.txt, posortować jego zawartość, a następnie wysłać dane wyjściowe do okna wiersza polecenia (tzn. STDOUT), należy wpisać:
sortAby znaleźć plik Plik.txt, a następnie przekierować dojście 1 (tzn. STDOUT) i dojście 2 (tzn. STDERR) do pliku Wyszukiwanie.txt, należy wpisać:
findfile plik.txt>wyszukiwanie.txt 2<&1
Aby duplikować dojście 3 zdefiniowane przez użytkownika jako dane wejściowe dojścia 0 (tzn. STDIN), należy wpisać:
<&3
Używanie operatora >& do przekierowywania danych wyjściowych i duplikowania
Jeżeli przekierowano dane wyjściowe do pliku i podano nazwę istniejącego pliku, program Cmd.exe otwiera ten plik w trybie tylko do zapisu i zastępuje jego zawartość. Jeżeli określono dojście, program Cmd.exe duplikuje plik w istniejącym dojściu.
Aby duplikować dojście 3 zdefiniowane przez użytkownika w dojściu 1, należy wpisać:
>&3
Aby przekierować wszystkie dane wyjściowe, łącznie z dojściem 2 (tzn. STDERR), polecenia ipconfig do dojścia 1 (tzn. STDOUT), a następnie przekierować dane wyjściowe do pliku Dane_wyjściowe.log, należy wpisać:
ipconfig.exe>>dane_wyjściowe.log 2>&1
Używanie operatora przekierowania >> do dołączania danych wyjściowych
Aby dodać dane wyjściowe polecenia na końcu pliku, nie tracąc informacji, które już się w nim znajdują, należy użyć podwójnego znaku większości (tzn. >>). Na przykład następujące polecenie dołącza listę katalogów generowaną przez polecenie dir do pliku Lista_kat.txt:
dir>>lista_kat.txt
Aby dołączyć dane wyjściowe polecenia netstat na końcu pliku Tcpinfo.txt, należy wpisać:
netstat>>tcpinfo.txt
Korzystanie z operatora potoku (|)
Operator potoku (|) pobiera dane wyjściowe (domyślnie STDOUT) polecenia i kieruje je do wejścia (domyślnie STDIN) innego polecenia. Na przykład następujące polecenie sortuje katalog:
dir | sort
W tym przykładzie wykonywanie obu poleceń rozpoczyna się jednocześnie, a następnie wykonywanie polecenia sort jest wstrzymywane do chwili odebrania danych wyjściowych polecenia dir. Polecenie sort używa danych wyjściowych polecenia dir jako własnych danych wejściowych, a następnie wysyła własne dane wyjściowe do dojścia 1 (tzn. STDOUT).
Łączenie poleceń przy użyciu operatorów przekierowania
Można tworzyć niestandardowe polecenia, łącząc polecenia filtrujące z innymi poleceniami i nazwami plików. Na przykład można używać następującego polecenia do przechowywania nazw plików zawierających ciąg „LOG”:
dir /b | find "LOG" > loglist.txt
Dane wyjściowe polecenia dir są wysyłane za pośrednictwem polecenia filtrującego find. Nazwy plików zawierające ciąg „LOG” są przechowywane w postaci listy nazw plików (na przykład NetshKonfig.log, Logdat.svd i Mylog.bat) w pliku Loglist.txt.
Aby w tym samym poleceniu zastosować kilka filtrów, należy oddzielić je symbolem potoku (|). Na przykład następujące polecenie przeszukuje każdy katalog na dysku C, znajduje nazwy plików zawierające ciąg „Log”, a następnie wyświetla je na kolejnych ekranach w oknie wiersza polecenia:
dir c:\ /s /b | find "LOG" | more
Korzystając z symbolu potoku (|), można polecić programowi Cmd.exe wysyłanie danych wyjściowych polecenia dir za pośrednictwem polecenia filtrującego find. Polecenie find wybiera tylko nazwy plików zawierające ciąg „LOG”. Polecenie more wyświetla nazwy plików wybrane przez polecenie find na kolejnych ekranach w oknie wiersza polecenia. Aby uzyskać więcej informacji dotyczących poleceń filtrujących, zobacz Korzystanie z filtrów.

Brak komentarzy:

Prześlij komentarz

 
www.Webmaster.M106.COM