SKRYPTY PISANE W JĘZYKU POWŁOKI (CMD.EXE)
Skrypty w Windows2000/XP, aby wykonane były przez interpreter poleceń cmd.exe muszą mieć rozszerzenia .cmd lub .bat.
Polecenia wiersza poleceń wykorzystywane w skryptach szeroko opisane są w pomocy systemu Windows. Znajdziemy też opis przydatnych instrukcji: if, for, goto, call, echo itd.
Pliki wsadowe i użyteczne zmienne środowiska pracy
Jeśli pisanie skryptów logowania w jakimś trudnym języku wygląda jak strzelanie z armaty do wróbli, można wykorzystać pliki wsadowe (batch files). Za pomocą interpretatora poleceń (command interpreter) CMD tworzy się całkiem wymyślne pliki wsadowe.
Niektórzy znawcy potrafiliby chyba stworzyć kompletny system operacyjny posługując się wyłącznie plikiem wsadowym. W pliku wsadowym nie można stosować wyszukanych pętli programowych i programowania strukturalnego, ale do nadawania wartości zmiennym środowiska pracy lub mapowania kilku dysków plik taki nadaje się znacznie lepiej niż skrypt VB.
Uruchamianie starszych skryptów w systemie Windows 2000
System Windows 2000 automatycznie uruchamia w tle w komputerze-kliencie skrypty
z rozszerzeniami BAT i CMD. Jest to prawdą nawet jeśli w skrypcie umieszczone są tylko przerwania (break), aby zatrzymać go podczas wyświetlania na ekranie.
Jeśli plik wsadowy lub plik poleceń (command flle) ma być wyświetlany na ekranie, należy aktywować następujące założenia grupowe (group policy):
User Configuration|Administrative Templates|System|l_ogon/Logoff|Run Logon Scripts Visible
Kilka zmiennych środowiskowych może być przydatnych do pisania skryptów zarządzających kontami użytkowników. Oto ich lista:
USERPROFILE. Ścieżka dostępu do lokalnego profilu użytkownika, typowo jest to C:\Documents and Settings\<nazwa_użytkownika>.
ALLUSERSPROFILE. Ścieżka dostępu do profilu^// Users. Typowo jest to C:\Documents andSettings\All Users.
COMPUTERNAME. Nazwa NetBIOS komputera, do którego załogował się użytkownik.
HOMEDRIVE. Symbol (litera) dysku wykorzystywana do mapowania do katalogu
domowego.
HOMEPATH. Pełna ścieżka UNC do katalogu domowego.
LOGONSERYER. Nazwa NetBIOS serwera identyfikującego użytkowników.
OS. System operacyjny zainstalowany w komputerze użytkownika.
USERDOMAIN. Domena identyfikująca użytkownika.
USERNAME. Nazwa NetBIOS użytkownika.
Informację o zmiennych uzyskamy korzystając z polecenia: SET
Poniżej znajduje się plik wsadowy wykorzystujący te zmienne:
@echo off
echo Hello. %USERNAMES%. Welcome to the %USERDOMAIN% domain.
Echo You have logged on to %LOGONSERVER% z %COMPUTERNAME%
Echo You are running %QS% from the %SYSTEMROOT% directory.
Echo Your home directory is on %homedrive%%homepath%.
Echo The path to this directory is %homeshare%%homepath%
Echo Your local settings are located in %USERPR0FILE%.
Echo Additional settings are located in %ALLUSERSPROFILE%.
Wynik wykonania powyższego pliku może wyglądać następująco:
Hello. Rmanuel. Welcome to the Company.com domain.
You have logged on to PHX-DC-01 from PHX-W2KP-032.
You are running Windows_NT from the \WINNT directory.
Your home directory is Z:\RMANUEL
The path to this directory is \\phx-dc-01\usres.
Your local settings are stored in C:\Documents and Settings\Administrator [PHX-W2KP-001].
Additional settings are located in C:\Documents and Settings\All Users.
Konfigurowanie interpretatorów poleceń
Nieważne, jak funkcjonalny i wygodny wydaje się graficzny interfejs użytkownika systemu Windows 2000. Nieuchronnie nadejdzie czas, kiedy okaże się, że do wykonania rzeczywistej pracy potrzebny jest wiersz poleceń. W systemie Windows NT są dwa okna konsoli: 32-bitowej konsoli wykorzystującej CMD.EXE jako interpretator poleceń i konsoli 16-bitowej wykorzystującej COMMAND.COM jako interpretator. Konsola COMMAND.COM zapewnia środowisko pracy z poleceniami DOS 5.0 umożliwiającymi uruchamianie plików wykonywalnych i programów rezydentnych (TSR), które wymagają prawdziwego środowiska DOS.
Konsole CMD i COMMAND nie umożliwiają pracy w środowisku DOS w takim sensie, jak występuje to w systemie OS/2 w postaci procesu o nazwie „DOS box". Konsola CMD jest programem 32-bitowym i tworzy prawdziwe 32-bitowe środowisko pracy. Konsola COMMAND.COM pracuje w środowisku wirtualnego komputera DOS-owego (VDM), ale
w razie potrzeby bezkolizyjnie przechodzi do 32-bitowego interpretatora poleceń CMD. Uruchomienie z konsoli COMMAND na przykład polecenia DIR, spowoduje wyświetlenie na ekranie długich nazw plików (long filenames), a nie krótkich.
Konsole alternatywne
System Windows 2000 zawiera dwie rzadko używane konsole. Jedną dla standardu POSIX, drugą dla systemu OS/2. Obsługa standardu POSIX w systemie Windows NT spełnia wymagania rządowe, ale programy spoza systemu Windows, takie jak MKS Toolkit lub Reflections, zapewniają zazwyczaj bardziej wszechstronną obsługę Uniksa. Konsola systemu OS/2 obsługuje tylko aplikacje tekstowe wersji 1.1 i przez to jest straszliwie przestarzała. Obsługa systemu OS/2 przez Windows 2000 jest jak stara fotografia ślubna poniewierająca się w albumie długo po rozwodzie. Firma Microsoft nie chce pozbyć się jej, chociaż służy tylko do przywoływania przykrych wspomnień.
Uruchamianie wiersza poleceń za pomocą pozycji menu START\PROGRAMY\WIERSZ POLECEŃ (START\PROGRAMS\COMMAND PROMPT) w rzeczywistości powoduje uruchomienie 32-bitowej konsoli CMD. Można to sprawdzić otwierając Menedżera zadań (Task Manager) i wybierając zakładkę Processes (Procesy). CMD.EXE znajduje się na liście uruchomionych zadań. Jeśli w komputerze zainstalowano Resource Kit, można sprawdzić listę uruchomionych procesów za pomocą programu TLIST/t. Kiedy uruchamia się aplikację 16-bitową, system Windows 2000 najpierw uruchamia NTVDM.EXE, a następnie ładuje aplikację do środowiska wirtualnego komputera DOS-owego (VDM). Jeśli aplikacja 16-bitowa jest uruchamiana z konsoli CMD, 'NTVDM.EXE jest wątkiem (thread) CMD.
Możliwość uruchamiania w tle konsoli CMD przez konsolę COMMAND, umożliwia również uruchamianie 32-bitowych aplikacji graficznych. Na przykład otwórz konsolę COMMAND, uruchom SOL, a następnie sprawdź listę procesów uruchomionych za pomocą polecenia TLIST -t. Oto próbka:
Explorer.exe (130)
ntvdm.exe (179) C:\command.corn
cmd.exe (168)
soi.exe (177) Solitaire
Należy zwrócić uwagę, że w 32-bitowym środowisku wirtualnego komputera Dosowego (NTVDM) pracuje 16-bitowa sesja interpretatora COMMAND, która uruchamia interpretator CMD, zawierający z kolei wątek (thread) Solitaire. Chociaż program TLIST pokazuje te procesy i procesy potomne, jeśli proces NTVDM zostanie usunięty (kill), to konsola CMD i jej wątek (thread) SOL zostaną.
Użytkownicy systemu Windows 9x, którzy przywykli do uruchamiania konsoli COMMAND za pomocą okna Run (Uruchom), powinni zamiast niej uruchomić CMD. Inter-pretator COMMAND.COM jest bardzo wolny w porównaniu z CMD. Nie powinno się uruchamiać konsoli COMMAND, o ile nie jest konieczny prawdziwy emulator DOS-a.
Nieobsługiwane wersje DOS-owe interpretatora poleceń COMMAND.COM
W przypadku komputera z systemem operacyjnym wybieranym przy starcie (dual-boot machinę), przy uruchamianiu konsoli C0MMAND.COM może pojawić się błąd. Dzieje się tak, ponieważ
w ścieżce przeszukiwania znajduje się starsza wersja C0MMAND.COM. Należy usunąć lub zmienić nazwę starej wersji.
Rozszerzony został zbiór poleceń interpretatora CMD w stosunku do systemu DOS 6.2
i DOS-a w systemie Windows 9x. Interpretator CMD obsługuje język plików wsadowych (batch language) podobny do języka plików wsadowych (batch language) systemu DOS, ale bogatszy i mający możliwości wywoływania aplikacji 32-bitowych. Tworząc pliki wsadowe (batch files) w systemie Windows 2000, należy nadać im rozszerzenie CMD, aby zagwarantować, że zostaną uruchomione w środowisku 32-bitowym.
CMD rozpoznaje rozszerzenia z listy rozszerzeń nazw plików, więc wystarczy wpisać tylko nazwę pliku danych z odpowiednim rozszerzeniem, aby uruchomić związaną z nim aplikację. Na przykład zarejestrowanym rozszerzeniem konsoli MMC jest .msc. Po wpisaniu dnsmgmt.msc interpretator poleceń uruchomi
Interpretator CMD może być również podany w skrótach (shortcuts) uruchamiających aplikacje w trybie znakowym. Pozwala to wykorzystać zalety parametrów (switches) polecenia CMD, modyfikujących przebieg sesji. Oto lista parametrów (switches):
/C. Parametr ten zamyka okno sesji po zakończeniu działania aplikacji. Można na przykład użyć polecenia CMD /C do uruchomienia zdalnego klienta poczty (maił client), kiedy okno ma być zamknięte po zebraniu poczty i zakończeniu działania klienta.
/K. Parametr ten pozostawia okno sesji otwarte po zamknięciu aplikacji. Można na przykład użyć polecenia CMD /K w programie Scheduler (Zadania zaplanowane) aby uruchomić plik wsadowy wieczorem, a następnego dnia przeczytać komunikaty o błędach.
/D. Parametr ten blokuje funkcję AutoRun procesora CMD. Funkcja AutoRun umożliwia uruchamianie programu lub pliku wsadowego przy każdym otwarciu sesji konsoli. Funkcja ta nie jest normalnie aktywna. Można ją aktywować za pomocą następujących wartości
w Rejestrze: HKLM\Software\Microsoft\Command Processor\AutoRun lub HKCU\Software\Microsoft\ Command Processor\AutoRun.
/V:ON. Parametr ten umożliwia opóźnione rozwinięcie (delayed expansion) zmiennej środowiska. W normalych warunkach zmienne środowiska są rozwijane (expanded), gdy tylko zostaną przetłumaczone (interpreted). W przypadku opóźnionego rozwinięcia (delayed expansion) zmiennej środowiska, zmienna ta nie jest rozwijana (expanded), dopóki polecenie nie zostanie wykonane. Zwykłe zmienne środowiska oznaczone są znakami
%.... %. Opóźnione rozwinięcie (delayed expansion) zmiennej środowiska oznaczone jest wykrzyknikami !...!. Oto krótki przykład sposobu działania opóźnionego rozwinięcia (delayed expansion). Weźmy pod uwagę skrypt pod nazwą TEST. CMD, o następującej zawartości:
echo %username%
echo !username!
A oto przebieg wykonywania skryptu:
C:\>test
C:\>echo admin
admin
C:\>echo !username!
admin
■ Rozwinięcie zmiennych środowiska (variable expansion) domyślnie jest zablokowane. Dodając poniższą wartość Rejestru, która ma typ danych RegDword do procesora poleceń (Command Processor), można aktywować rozwinięcie zmiennych środowiska (variable expansion) dla wszystkich sesji CMD:
Key: HKLM|Software|Microsoft|Command Processor
Value: DelayedExpansion
Data: 1 (typReg_Dword)
/Q. Ten parametr wyłącza echo danej aplikacji.
/A lub /U. Parametry te przekształcają strumień bajtów przesyłany do potoku (pipę) lub plików przekierowywanych (file redirection) na standard ANSI (/A) lub Unicode (/U). Domyślną wartością jest /U.
/T: fg. Parametr ten ustawia kolory tła i tekstu dla sesji.
/F: OFF. Parametr ten blokuje automatyczne uzupełnianie nazw plików i katalogów (name completion). Automatyczne uzupełnianie nazVv oszczędza wpisywania w linii poleceń, automatycznie dopełniając podaną wartość na podstawie kilku pierwszych znaków. Działa to jak stary znak zachęty (prompt) DBase po zażyciu sterydów.
Automatyczne uzupełnianie ścieżki
System Windows 2000 i Windows NT można skonfigurować w ten sposób, by rozpoznawały znaki specjalne w wierszu poleceń i uzupełniały ścieżkę lub nazwę pliku. Domyślnie znakiem specjalnym jest kombinacja klawiszy Ctrl+I. Zamiast wpisywania CD \Dokumenty i ustawienia można wpisać CD Dok, a potem nacisnąć Ctrl+I, uzupełniając ścieżkę.
Jeśli wiele plików lub podkatalogów zaczyna się na te same litery, należy kilkakrotnie naciskać Ctrl+I, przechodząc do kolejnych nazw.
Uzupełnianie nazw kontrolowane jest przez wartość Rejestru HKLMISoftwarelMicrosoftlCommand ProcessorlCompletionChar, którą domyślnie jest 0x9h (Ctrl+I).
Wpisując polecenie CMD /F:0N znak uzupełniania nazw katalogów zmienia się na Ctrl+D (0x4h), a znak uzupełniania nazw plików na Ctrl+F[0x6h). Wtedy naciskanie Ctrl+D powoduje wyłącznie przechodzenie do kolejnych nazw katalogów, podczas gdy Ctrl+I rozpoznaje zarówno nazwy plików, jak i nazwy katalogów.
Domyślna wartość Rejestru CompletionChar może być zmieniona.
/Y. CMD zawiera wiele rozszerzeń standardowych poleceń wewnętrznych. Niektóre mogą zakłócać działanie starszych plików wsadowych. Za pomocą parametru /Y można wyłączyć działanie rozszerzeń podczas całej sesji lub w pliku wsadowym przed wpisaniem polecenia, które sprawia kłopoty. Zamiast tego parametru do wyłączenia działania rozszerzeń dla wszystkich sesji można wykorzystać następującą pozycję Rejestru:
Key: HKCU|Software|Microsoft|Conmand Processor
Value: EnableExtensions
Data: 0
/X. Parametr ten aktywuje rozszerzenia CMD po ich zablokowaniu.
&&. Interpretator CMD umożliwia wprowadzanie wielu poleceń w jednym wierszu oddzielonych znakami &&. Na przykład, aby ćwiczyć koordynację ręki i oka, która ma podstawowe znaczenie dla dobrego administrowania systemem, można jednocześnie uruchomić Sapera, Pinball i Solitaire w następujący sposób:
winmine && soi && pinball
/S. Parametr ten umożliwia specjalną obsługę znaków cudzysłowu " (quote).
W normalnych warunkach, jeśli interpretator zauważy ten znak na początku łańcucha znaków, usuwa również końcowy cudzysłów, jeśli taki jest, a następnie uruchamia odpowiedni program. Na przykład wprowadź w wierszu poleceń dwuwyrazową nazwę pliku mapy bitowej c:\>prairie wind.bmp. CMD wyświetli komunikat o błędzie 'prairie' is not
a recognized command. Jeśli zostanie wpisany łańcuch znaków w postaci
c: \>"prai ri e wi nd. bmp", CMD potraktuje to jako jeden łańcuch, uruchomi Paintbrusha
i załaduje mapę bitową. Łańcuch znaków w postaci c: \>"prai ri e wi nd. bmp (bez końcowego cudzysłowu) zostanie potraktowany również jako jeden ciąg znaków. Zastosowanie parametru /S powoduje, że wymagana jest prawidłowa składnia. Wpisanjec:\>"prairie wind.bmp /s spowoduje wyświetlenie komunikatu o błędzie. Parametr /S może być wykorzystany w pliku wsadowym do sprawdzania poprawności danych wprowadzanych przez użytkownika.
Rozszerzenia poleceń wewnętrznych CMD
CMD posiada zestaw poleceń wewnętrznych systemu DOS, ale kilka z nich jest zmodyfikowanych lub rozszerzonych, aby uprościć pracę z wierszem poleceń i poprawić działanie plików wsadowych. Poniżej znajduje się lista najczęściej wykorzystywanych rozszerzeń poleceń CMD:
DEL. W systemie DOS polecenie DEL /S usuwa plik ze wszystkich miejsc, w których pojawia się na dysku, ale podaje, gdzie szuka tego pliku. Wersja polecenia DEL /S dla konsoli CMD podaje tylko komunikat o miejscu znalezienia pliku i jego usunięciu.
CD. CD /D umożliwia przejście z danego katalogu bezpośrednio na inny dysk, włączając
w to dyski sieciowe. Na przykład jeśli bieżąca sesja dotyczy dysku Cl to wprowadzając polecenie w postaci cd /d e:\anydir można przenieść się bezpośrednio do katalogu \anydir na dysku E:. Polecenie ma jeszcze jedno, mniej widoczne rozszerzenie. Analizator składni (parser) przyjmuje, że spacje są częścią ścieżki dostępu do katalogu, więc można wprowadzić polecenie w postaci CD c:\Daily Sales Totals.
SET. Można poszukiwać zmiennych środowiskowych, korzystając z polecenia SET, po którym następuje kilka początkowych liter nazwy zmiennej. Aby znaleźć na przykład wszystkie zmienne zaczynające się na literę S, należy użyć polecenia w postaci SET S. Bardziej znaczącym rozszerzeniem jest możliwość wykorzystywania operatorów arytmetycznych i logicznych w przypadku polecenia SET z parametrem /A. Przykładem może być wprowadzenie nowej zmiennej środowiskowej VAR3, która ma być sumą dwóch zmiennych środowiskowych VAR1 i VAR2. Można to zrobić za pomocą polecenia SET
w postaci:
Set /A var3=varl+var2
Należy zwrócić uwagę, że wykorzystując parametr /A nie trzeba wpisywać zmiennych środowiskowych w postaci $VARU i %VAR2%.
IF. Funkcja IF w systemie DOS jest zwykle wykorzystywana do obsługi błędów, np. IF errorlevel 1 GOTO erroMabel lub sprawdzania, czy dany plik istnieje, np. IF EXIST filejiame GOTO actioniabel. Mając funkcję IFzparametrem /I można wykorzystywać relacje logiczne, np IF /I %varl% LSS %var2% GOTO action_label.
CALL. Rozszerzenia funkcji CALL w systemie Windows 2000 są spełnieniem marzeń szalonego programisty. Umożliwiają stosowanie etykiet jako argumentów polecenia CALL np. ca 11 :1abel_argument. Wykorzystując tę właściwość trzeba pamiętać, że polecenie CALL wywołuje inną sesję CMD i w związku z tym tracone są wszystkie wartości nadane zmiennym środowiskowym w pierwszej sesji. Po zakończeniu działania sesja wywołana poleceniem CALL, powraca do pliku wywołującego do linii znajdującej się bezpośrednio pod linią zawierającą polecenie CALL.
SHIFT. Funkcja ta przesuwa listę argumentów o jeden. Parametr /N umożliwia określenie pozycji, od której zacznie się przesuwanie. Na przykład jeśli dla 4 argumentów użyte zostanie polecenie SHIFT w postaci: shift /3, to końcowy 'porządek zmiennych będzie następujący: %1, %2, %4.
GOTO. Rozszerzenie rozpoznaje specjalną etykietę: EOF, która powoduje przejście na koniec pliku (End of File) niezależnie od tego, w której części programu się znajduje. Jest to szybki sposób wyjścia z pliku wsadowego bez konieczności definiowania etykiety końca pliku EOF.
MD lub MKDIR. Rozszerzenia te mogą być wykorzystywane do zbudowania od razu całej struktury katalogów. Na przykład polecenie MD \MiddleEarth\Shi re\ Hobbiton\BagEnd powoduje utworzenie wszystkich katalogów ścieżki. Taką sztuczkę można wykonać dla innego dysku. Pracując na przykład na dysku C: można wprowadzić polecenie C: \>MD E:\Elves\Men\Half lings tworząc katalogi na dysku E:.
Jeśli w ścieżce dostępu znajdą się spacje pomiędzy nazwami katalogów, to rozszerzenia MD zinterpretują to jako nazwy oddzielnych katalogów. Na przykład polecenie md C:\First Ouater ResuHs powoduje utworzenie trzech katalogów w katalogu głównym na dysku C:
C:\First
C:\Quater
C:\Results
FOR /D. Polecenie FOR służy do tworzenia pętli programowych. Podstawowa składnia tego polecenia to: FOR batch_variable IN some_namespace DO some_command. Rozszerzenia polecenia FOR zawierają kilka pożytecznych parametrów. Polecenie FOR /D umożliwia stosowanie identyfikatorów swobodnych (wildcards) w parametrach wyrażenia IN. Jeśli na przykład plik wsadowy ma wyświetlić zawartość katalogu z wyłączeniem plików, należy użyć następującego polecenia: FOR /D %1 IN (*) DO @echo %1.
■ FOR /R. Działanie podane w instrukcji DO dotyczy katalogu zapisanego w wyrażeniu FOR. Jeśli katalog zawiera podkatalogi, to instrukcja DO przechodzi do każdego podkatalogu. Na przykład do wyświetlenia listy plików z rozszerzeniem TXT zapisanych w katalogu MYFILES i jego podkatalogach służy polecenie FOR /R c:\my_files %1 IN (*.TXT) DO @echo %1.
FOR /L. Polecenie to wykonuje daną operację określoną liczbę razy. Składnia polecenia jest następująca: FOR /I %variable IN (start, step. end) DO command %variable. Przykładowym zastosowaniem może być dodawanie wielu kont użytkowników w celach testowych. Polecenie FOR /L %1 IN (100. 1. 10000) DO Net User /add User%1 dodaje 9900 użytkowników o nazwach UserlOO, UserlOl, UserlO2 itd.
FOR /F. Parametr ten powoduje podzielenie pliku na wiersze, każdego z wierszy na słowa (tokens) i wyświetla wybrane słowa. Składnia jest następująca: FOR /F "opcje analizy składni" %variable IN (pliki) DO command %variable. Część „opcje analizy syntaktycznej" musi być umieszczona w cudzysłowie i zawierać przynajmniej jedną
z poniższych opcji:
eol= Wprowadź specjalny znacznik końca wiersza (end-of-line). Odczytując standardowy plik tekstowy ASCII ze znacznikami końca wiersza systemu DOS, można opuścić
tę pozycję.
skip= Podaj liczbę początkowych wierszy, które mająbyć pominięte. Odczytując na przykład plik z czterowierszowym nagłówkiem, można zacząć czytanie pliku od wiersza numer 5 podając opcję „skip=4".
delims= Podaj znak, który jest ogranicznikiem poszczególnych słów (tokens) w wierszu. Jeśli w pliku jako ogranicznik występuje znak przecinka, opcja ma postać delims=,.
token= Określa, których słów (tokens) dotyczy instrukcja FOR IV. Jeśli na przykład
w wierszu jest 5 pozycji, a operacja ma dotyczyć tylko drugiego i czwartego, należy wprowadzić opcję w postaci „token=2,4".
Poniżej zamieszczono przykład wykorzystania polecenia FOR /F. Mamy plik TEST.FOR w postaci:
One. two. three. four
Four, five. six. seven. eight. nine
Wprowadzając polecenie w postaci:
FOR /F "tokens-1.3-4 delims-." %1 IN (testfor.txt) DO @echo %1 %j %k
Otrzymamy w wyniku:
One three four
Five seven eight nine
■ Opcje specjalne rozszerzeń zmiennych wsadowych (batch variable expansion).
W przypadku pliku wsadowego (batch file), na przykład test.cmd, który zawiera polecenia wykorzystujące zmienne plików wsadowych (batch file variable) takich jak %1, %2 itd., CMD umożliwia stosowanie specjalnych parametrów modyfikujących. Oto lista tych parametrów:
%1 — standardowa obsługa zmiennej.
%~fl —podaje pełną nazwę ścieżki dostępu zmiennej %1.
%~dl — podaje symbol (literę) dysku zmiennej %1.
%~pl —podaje ścieżkę zmiennej %1.
%~ nl — podaje nazwę pliku zmiennej %1.
%~ xl — podaje rozszerzenie pliku zmiennej %1.
%~ sl — zmienia opcję n i x, podając nazwę pliku w postaci 8.3 zamiast nazwy długiej.
%~$PATH: 1 — przeszukuje katalogi podane jako parametr PATH, dopóki nie znajdzie pozycji dotyczącej %l. Następnie wartością tego parametru zostanie ścieżka dostępu do zmiennej %1. Jest to przydatne przy uruchamianiu pliku wsadowego w innym katalogu niż argument. Jeśli plik nie zostanie znaleziony, parametr ten zawiera łańcuch pusty.
Rozszerzenie poleceń zewnętrznych CMD
Większość poleceń zewnętrznych w Windows 2000 jest podobnych do swoich odpo
wiedników w systemie DOS. Poniższe polecenia nie są opisane gdzie indziej, a mogą
okazać się przydatne.
PUSHD i POPD. Są to polecenia wzięte prosto z systemu UNIX. Do zmiany katalogów należy stosować PUSHD zamiast CD. Jeśli nastąpiło przejście do nowego katalogu, PUSHD pozostawia wskaźnik (pointer) do starego katalogu. Później można powrócić do pierwotnego katalogu korzystając z polecenia POPD. Załóżmy, że bieżącym katalogiem jest C:\Presidents\20thCentury\Democrats i należy przejść do katalogu C:\Presidents\18thCentury\Whigs, a potem powrócić do katalogu pierwotnego.
Można to zrobić za pomocą następującego polecenia:
PUSHD C:\Presidents\18thCentury\Whigs : :Zmiana katalogu
POPD
:Powrót do katalogu pierwotnego
Wydając kilka poleceń PUSHD z rzędu można umieścić na stosie kilka katalogów. Każde następne polecenie POPD zwalnia jedno miejsce na stosie, dopóki nie nastąpi powrót do katalogu początkowego.
PROMPT. CMD zawiera kilka dodatkowych znaków, które można umieścić w wyrażeniu PROMPT i ułatwić w ten sposób przechodzenie pomiędzy katalogami za pomocą poleceń PUSHD/POPD. Symbol $+ dodaje znak + do znaku zachęty (prompt), kiedy wykorzystuje się polecenie PUSHD, a usuwa go przy powrocie za pomocą polecenia POPD. Wprowadzając na przykład $p$+$g, po trzykrotnym użyciu polecenia PUSHD zostanie wyświetlony następujący znak zachęty (prompt):
C:\New_Directory+++>.
ASSOC i FTYPE. Jedną ze specjalnych cech interpretatora CMD jest zdolność otwierania plików danych stosując związane z nimi aplikacje, rozpoznawane na podstawie rozszerzenia plików danych. Wprowadzenie na przykład następującego łańcucha znaków C: \>"furry dog. bmp" spowoduje otwarcie przez CMD pliku mapy bitowej za pomocą Paintbrusha. Więcej informacji poniżej.
Kojarzenie plików
Za pomocą poleceń ASSOC i FTYPE można tworzyć skojarzenia dla rozszerzeń nazw plików.
Polecenie FTYPE tworzy klucz, kojarzący typ pliku z określonym programem. Na przykład typ pliku TXTFILE jest związany z programem NOTEPAD.EXE.
Polecenie ASSOC tworzy klucz, kojarzący rozszerzenie nazwy pliku z określonym typem pliku. Na przykład rozszerzenie .TXT jest związane z typem TXTFILE.
Poniżej zamieszczono przykład wykorzystania tych poleceń. Aby automatycznie rozpakowywać (unzipping) pliki podczas przeszukiwania zasobów Internetu, za pomocą programu PKUNZIP.EXE po dwukrotnym kliknięciu nazwy pliku z rozszerzeniem ZIP należy wpisać polecenia w następującej postaci:
ftype zipfile=c:\zip\pkunzip.exe assoc=.zip=zipfile
COLOR. Polecenie to zmienia kolory tła i tekstu w bieżącym oknie sesji i może służyć do rozróżniania sesji w trybie wiersza poleceń (command sessions) dla różnych aplikacji.
W tym celu należy utworzyć plik^waadowy (batch file), który wydaje polecenie COLOR,
a następnie uruchamia aplikację.
Kolor w trybie tekstowym
Niektóre aplikacje znakowe zmieniają tryb znakowy na tryb graficzny i w takim przypadku ustawienia polecenia COLOR nie mają znaczenia. Polecenie COLOR przyjmuje jednobajtowe argumenty określające kolorystykę. Bajt jest dzielony na dwie cyfry szesnastkowe. Pierwsza
z nich określa kolor tła, a druga kolor tekstu. Na przykład COLOR 47 oznacza czerwone tło
i biały tekst. Dostępną paletę kolorów przedstawia tabela 16.2.
Tabela 16.2.
Oznaczenia szesnastkowe kolorów
Kolor |
Oznaczenie szesnastkowe |
Czarny (Black) |
0 |
Niebieski (Blue) |
1 |
Zielony (Green) |
2 |
Akwamaryna (Aqua) |
3 |
Czerwony (Red) |
4 |
Żółty (Yellow) |
6 |
Biały (White) |
7 |
Szary (Gray) |
8 |
Jasnoniebieski (Light Blue) |
9 |
Jasnozielony (Light Green) |
A |
Jasna akwamaryna (Light Aqua) |
B |
Jasnoczerwony (Light Red) |
C |
Jasnopurpurowy (Light Purple) |
D |
Jasnożółty (Light Yellow) |
E |
Jaskrawobiały (Bright White) |
F |
Polecenie START
Polecenie START jest jednym z najbardziej przydatnych poleceń zewnętrznych, więc poświęcenie mu szczególnej uwagi jest usprawiedliwione. Za pomocą tego polecenia można konfigurować pamięć współdzieloną (shared memory), przydzielać aplikacjom priorytety itp. Pracuje poprawnie dla dowolnego programu. Poniżej przedstawiono listę parametrów polecenia START i ich zastosowanie:
II. Środowiskiem pracy nowo uruchomionej aplikacji jest pierwotne środowisko pracy macierzystego okna interpretatora CMD. Nie przekazuje się żadnej zmiennej środowiska pracy (environment variable) CMD dodanej podczas trwania sesji.
/MIN. Minimalizuje okno nowo uruchomionej aplikacji do TgskBar (Paskazadań). Dotyczy to wszystkich aplikacji, systemu Windows, znakowyfih^jt2-bitowych i 16-bitowych.
/MAX. Otwiera okno nowo uruchomionych aplikacji. Aplikacje znakowe uruchamiane są
w oknie, a nie w trybie pełnoekranowym, a okno nie ma pasków przewijania.
/SEPARATE. Uruchamia aplikacje 16-bitowe systemu Windows w osobnym obszarze pamięci oraz z nowymi wątkami NTVDM i WOWEXEC. Uruchamianie aplikacji 16-bitowych
w oddzielnych obszarach pamięci zapewnia stabilność systemu w przypadku aplikacji, które mogą działać nieprawidłowo. Parametr ten umożliwia uruchomienie aplikacji 16-bitowych jako oddzielne wątki (threads), co zezwala na pracę wielowątkową (multithread performance), zamiast działania wszystkich aplikacji 16-bitowych jako jednego wątku, jak to się robi domyślnie w systemach Windows 2000 i Windows NT.
/SHARED. Uruchamia 16-bitowe programy systemu Windows we wspólnym obszarze
pamięci. Jeśli nie istnieje wspólny wątek NTVDM i WOWEXEC, to jest on tworzony domyślnie.
/IDLE, /NORMAL, /HIGH, /REALTIME. Parametry te określają priorytet aplikacji. System Windows 2000 wykorzystuje priorytety wątków do sterowania przerwaniami programowymi. Istnieją32 poziomy priorytetów, ponumerowane od 0 do 31. Kiedy wątek, który ma określony priorytet, wysyła przerwanie programowe, system maskuje wszystkie przerwania wysyłane przez wątki o niższych priorytetach. Gwarantuje to, że aplikacje
o niższym priorytecie, takie jak aplikacje użytkownika, nie przejmą kontroli nad wątkami
o wyższym priorytecie, takimi jak składniki systemu operacyjnego. Wątkom uruchomionym przez dany proces nadaje się priorytety, zależnie od priorytetu procesu macierzystego. Priorytety dzielą się na cztery kategorie: Idle, Normal, High i Realtime. Nadając priorytet nieodpowiedni dla danej aplikacji, można obniżyć wydajność systemu. Inaczej mówiąc: „Nie wolno stosować polecenia start /realtime excel do zwiększenia szybkości obliczeń
dokonywanych przez arkusz kalkulacyjny".
/WAIT. Polecenie START domyślnie otwiera nową sesję i przekazuje kontrolę nad poprzednią sesją do wątku CMD, który jest jego właścicielem. Parametr /WAIT wstrzymuje pierwotną sesję CMD dopóki aplikacja uruchomiona przez polecenie START nie zakończy się. Jest to przydatne, jeśli w pliku wsadowym (batch file) trzeba uruchomić kilka aplikacji,
a każda z nich musi czekać na zakończenie poprzedniej.
/B. Parametr ten powoduje uruchomienie nowej aplikacji w istniejącym oknie sesji, zamiast tworzenia nowego okna. Ten sam efekt daje uruchomienie aplikacji bez polecenia START, tak więc parametr w rzeczywistości nie jest przydatny. Może być przyczyną problemów dla aplikacji zmieniających tryb ze znakowego na graficzny, chociaż wyglądają na aplikacje pracujące w trybie znakowym. Parametr /B powoduje również zablokowanie obsługi kombinacji klawiszy Ctrl+C, więc jedynym sposobem przerwania pętli programu jest naciśnięcie Ctrl+Break.
Rozszerzenia polecenia START umożliwiają określenie nazwy katalogu zamiast programu lub pliku wykonywalnego. Na przykład polecenie w postaci start daje w wyniku okno My Computer (Mój komputer) przedstawiające zawartość katalogu macierzystego.
Przykłady zastosowania poleceń powłoki w skryptach
Zarządzanie kontami użytkowników z wiersza poleceń
Konta użytkowników pozwalają użytkownikom na uzyskanie dostępu do domeny oraz zasobów lokalnego systemu za pomocą aktualnej nazwy użytkownika i hasła. Chociaż zarządzanie kontami użytkowników odbywa się zwykle poprzez narzędzia administracyjne systemu operacyjnego, w przypadku obsługi zdalnych systemów oraz konieczności wprowadzenia wielu modyfikacji, wykonywanie skryptów zarządzania kontami poprzez wiersz poleceń jest znacząco szybsze.
Zarządzania kontami użytkowników za pomocą polecenia NET
Jednym z najrzadziej używanych narzędzi wiersza poleceń do zarządzania kontami użytkowników jest polecenie NET. Podstawowa składnia polecenia NET, pozwalająca na zarządzanie kontami użytkowników, to:
NET USER NAZWA_UŻYTKOWNIKA HASŁO /polecenia
nazwa_użytkownika jest tutaj kontem użytkownika, które ma być zarządzane, hasło to albo hasło konta albo gwiazdka (*), oznaczająca zapytanie o hasło, a dostępne polecenia to:
/ACTIVE:X— decyduje o aktywacji konta;/może mieć wartość YES (tak) lub NO (nie);
/ADD — dodaje konto użytkownika,
/DELETE — usuwa konto użytkownika,
/DOMAIN — tworzy konto w aktualnie aktywnej domenie,
/COMMENT: "X" — ustawia opis konta, gdzie X jest komentarzem,
/COUNTRYCODE: X — ustawia kod kraju konta,
/USERCOMMENT: "X" — ustawia komentarz użytkownika, gdzie X jest komentarzem,
/EXPIRES: X — ustawia datę wygaśnięcia konta, gdzie X może mieć wartość NEVER (nigdy) lub datę w formacie MM/DD/RR. Ten format może przyjąć różne wartości w zależności
od kodu kraju,
/FULLNAME: "X" — ustawia pełną nazwę konta, gdzie X jest nazwą,
/ HOMEDIR: X — ustawia katalog macierzysty, gdzie X jest ścieżką,
/ PASSWORDCHG: X — decyduje o prawie użytkownika do zmiany hasła, gdzie X może mieć wartość YES (tak) lub NO (nie),
/PASSWORDREQ: X— decyduje o tym, czy hasło jest niezbędne; X może mieć wartość YES (tak) lub NO (nie)
/PROFILEPATH: X — ustawia katalog profilu, gdzie X jest ścieżką,
/SCRIPTPATH: X — ustawia katalog skryptu logowania, gdzie X jest ścieżką,
/TIMES:/ — ustawia okres czasu, w którym użytkownik może się logować; X może mieć wartość ALL (zawsze) lub zostać zapisany w postaci oddzielonych od siebie przecinkami dni
i godzin.
Oto przykład pokazujący sposób dodania konta za pomocą polecenia NET:
NET USER "Tyler" TEMPPASSWORD /ADD /COMMENT :"Konto projektu"
/ACTIVE: NO /EXPIRES:12/31/03 /FULLNAME: "Tyler Durden"
/HOMEDIR:C:\ /PASSWORDCHG:NO /PASSWORDREQ:YES /PROFILEPATH:C:\PROFILES\TD
/USERCOMMENT: "Sponsor korporacyjny" /WORKSTATIONS:STATION1 /SCRIPTPATH:GDZIES\TAM
TIMES:M0NDAY-THURSDAY.8AM-5PM
Zarządzanie grupami z wiersza poleceń
Grupy udostępniają administratorom metodę organizacji i przydzielania przywilejów dla kont użytkowników. Grupy są również przydatne przy identyfikacji zbioru użytkowników
z podobnymi parametrami (na przykład pracownicy tymczasowi). W celu automatyzacji codziennych zadań można utworzyć skrypty zarządzania grupami.
Zarządzanie grupami za pomocą polecenia NET
Wbudowane polecenie NET.EXE pozwala na zarządzanie grupami lokalnymi i globalnymi
z wiersza poleceń. Podstawowa składnia polecenia NET do zarządzania zdalnymi grupami to:
NET typ nazwa polecenia
typ oznacza tutaj słowo kluczowe GROUP dla zarządzania grupami globalnymi lub LO-CALGROUP dla grup lokalnych, nazwa to grupa do zarządzania, a dostępne polecenia to:
/ADD — dodaje konta użytkowników do podanej grupy; poszczególne konta oddzielone są spacjami,
/COMMENT: "X" — ustawia komentarz grupy,
/DELETE — kasuje grupę lub usuwa z podanej grupy konto użytkownika,
/DOMAIN — wykonuje operację na głównym kontrolerze domeny,
nazwa_użytkownika — podaje konto użytkownika, które ma być dodane lub usunięte
z grupy.
Wysyłanie alarmów za pomocą skryptów powłoki
Skrypty powłoki nie oferują żadnej metody wysyłania alarmów. Microsoft Windows posiada narzędzie NET.EXE, które pozwala na wysyłanie wiadomości do użytkowników
i komputerów w sieci.
Wysyłanie alarmów do pojedynczego użytkownika lub komputera
Aby wysłać wiadomość poprzez sieć, przejdź do znaku zachęty i wprowadź następujące polecenie:
NET SEND nazwa komunikat
Maksymalna długość komunikatu NetBIOS to wielkość 128 znaków.
komunikat oznacza tutaj wiadomość do wysłania, a nazwa to nazwa NetBIOS komputera lub identyfikator użytkownika.
Wysyłanie alarmów do wielu użytkowników lub komputerów
W celu wysłania wiadomości do wszystkich komputerów w sieci lokalnej możesz także użyć znaku gwiazdki (*).
Net Send * komunikat
Tutaj komunikat to wiadomość do wysłania. Zamiast podania nazwy lub wprowadzenia gwiazdki możesz skorzystać z jednego z poniższych poleceń w celu wysłania wiadomości do wielu użytkowników lub komputerów:
/DOMAIN — wysyła wiadomość do lokalnej domeny,
/DOMAIN: nazwa — wysyła wiadomość do podanej domeny,
/USERS — wysyła wiadomość do użytkowników połączonych z serwerem.
Oto przykład, pokazujący sposób wysłania komunikatu do domeny JESSEWEB:
Net Send /DOMAIN:JESSEWEB komunikat
Wysłanie wiadomości do całej sieci lub domeny spowoduje nie tylko zajęcie dużej części pasma sieci, ale rozzłości wszystkich innych użytkowników.
Wysyłanie alarmów do wybranych użytkowników i komputerów
Chociaż polecenie Net Send zawiera metody wysyłania komunikatów do wielu użytkowników, nie umożliwia jednak wysyłania wiadomości do konkretnej grupy użytkowników lub komputerów. Aby wysiać alarm do konkretnych użytkowników za pomocą skryptów powłoki, wykonaj następujące czynności:
Utwórz nowy katalog dla wszystkich plików, które są wykorzystywane
w tym przykładzie.
Wybierz Start\Uruchom i wprowadźplik_skryptowy.bat.
plik_skryptowy oznacza tutaj pełną ścieżkę i nazwę pliku skryptowego, który zawiera poniższe polecenia:
@ECHO OFF
For /F %%N In (plik _tekstowy) Do ( Echo Wysyłanie wiadomości
%%N… & Net Send %%N Komunikat
Wyróżniony kod musi znaleźć się w jednej linii.
plik_tekstowy to nazwa pliku tekstowego, którego poszczególne linie zawierają nazwę użytkownika lub komputera, a komunikat to wiadomość do wysłania.
Tworzenie skryptów logowania ze skryptami powłoki
Skrypty powłoki są poprzednikiem skryptów logowania Windows. Chociaż może brakować im niektórych bardziej zaawansowanych funkcji innych języków skryptowych, ich główną zaletą jest kompatybilność. W przeciwieństwie do KiXtarta czy Windows Script Hosta, działanie skryptów powłoki nie wymaga zainstalowania żadnego klienta (oczywiście poza systemem operacyjnym). Skrypty powłoki udostępniają skryptom logowania proste i łatwe do zastosowania rozwiązania.
Ustawianie tytułu okna
Systemy Windows NT i 2000 obsługują polecenie title, które umożliwiają zmianę tytułu okna zapytania. Podstawowa składnia polecenia title wygląda w następujący sposób:
title tytuł
tytuł oznacza tutaj nazwę, jaką chcesz przydzielić dla aktualnego okna zapytania. Oto przykład pokazujący zmianę tytułu okna zapytania na „Skrypt logowania":
If "%OS%”—"Windows_NT" Title Skrypt logowania
%OS% to zmienna środowiska, która informuje o typie systemu operacyjnego.
Zmiana koloru pierwszego planu i tła
Systemy Windows NT i 2000 obsługują polecenie color, które umożliwia zmianę koloru pierwszego planu i tła w oknie zapytania powłoki. Podstawowa składnia polecenia color wygląda w następujący sposób:
COLOR BF
B to wartość koloru tła, a F to wartość koloru pierwszego planu. Polecenie color wykorzystuje następujące wartości kolorów:
0 — czarny,
1 — niebieski,
2 — zielony,
3 — morski,
4 — czerwony,
5 — fioletowy,
6 —żółty,
7 — biały,
8 — szary,
9 — błękitny,
A—jasnozielony,
B—jasny morski,
C —jasnoczerwony,
D—jasnofioletowy,
E —jasnożółty,
F — śnieżnobiały.
Oto przykład zmiany kolorów w oknie zapytania; jako efekt zmian na niebieskim tle pojawi się śnieżnobiały tekst:
IF "%0S%—"Windows_NTM COLOR IF
%0S% to zmienna środowiska, która informuje o typie systemu operacyjnego.
Synchronizacja lokalnego czasu systemowego
Synchronizacja lokalnego systemu z centralnym źródłem czasu pozwala na jednoczesne wykonywanie kilku zadań w całej organizacji. Podstawowa składnia polecenia synchronizującego lokalny zegar z podanym źródłem czasu wygląda w następujący sposób:
Net Time Wserwer /polecenia
serwer oznacza tutaj nazwę serwera źródła czasu, z którym należy dokonać synchronizacji. Ten parametr jest wymagany tylko w przypadku synchronizacji z konkretnym serwerem. Jeśli parametr zostanie pominięty, w poszukiwaniu serwera źródła czasu system przeszuka lokalną domenę. Dostępne polecenia to:
/SET— ustawia lokalny czas zgodnie z serwerem źródła czasu,
/Y — wymusza synchronizację z podanym serwerem niezależnie od tego, czy wybrany serwer jest źródłem czasu,
/DOMAIN: nazwa_domeny — przegląda podaną domenę w poszukiwaniu serwera źródła czasu.
Przedstawiony poniżej skrypt dokonuje próby synchronizacji lokalnego czasu systemu
z serwerem o nazwie nazwa_serwera. Jeśli proces ten się nie powiedzie, w celu znalezienia źródła czasu przeszukana zostanie domena. Aby to umożliwić, wykonaj następujące czynności:
Utwórz nowy katalog dla wszystkich plików, które są wykorzystywane w tym przykładzie.
Wybierz Start / Uruchom i wprowadź p1ik_skryptowy.bat.
Plik_jskryptowy oznacza tutaj pełną ścieżkę i nazwę pliku skryptowego, który zawiera
poniższe polecenia:
@Echo Off
CLS ; Oczyszcza ekran
Set TServer=nazwa_ serwera
Echo Synchronizacja czasu z %TServer%... Net Time \\XTServerX /set /yes If %errorlevel% NEQ 0 CLS && Goto Domain CLS && Echo Synchronizacja powiodła sie Goto End
:Domain
Echo Wyszukiwanie serwera czasu w lokalnej domenie...
Net Time /set /yes
If %errorlevel% EQU 0 CLS && Echo Synchronizacja powiodła sie && Goto End
CLS && Blad synchronizacji z serwerem czasu
:End
tserver to zmienna, która zawiera nazwę serwera źródła czasu, NEQ to operator „nie jest równy", a && pozwala na wykonanie kolejnej komendy (po zakończeniu poprzedniej).
Mapowanie wspólnych dysków
Wykonanie mapowania wspólnych dysków dla wszystkich użytkowników pozwala na utworzenie centralnej lokalizacji dla aplikacji i danych. Z rozdziału 7. dowiedziałeś się, jak odzwierciedlić dyski sieciowe poprzez Windows i znak zachęty. Aby dokonać mapowania dysku sieciowego i wyświetlić jego status poprzez wiersz poleceń, wykonaj następujące czynności:
Utwórz nowy katalog dla wszystkich plików, które są wykorzystywane w tym przykładzie.
Wybierz Start /\ Uruchom i wprowadź p1ik_skryptowy.bat.
pl1k_skryptowy oznacza tutaj pełną ścieżkę i nazwę pliku skryptowego, który zawiera poniższe polecenia:
@Echo Off
CLS : Oczyszcza ekran
Set Dysk=Litera_dysku
Set Share=\\serwer\nazwa_elementu
Echo Mapowanie dysku %Dysk% do %Share%
Net Use %Dysk%: /Delete && CLS
Net Use %Dysk%: %Share%
If %errorlevel% EQU 0 CLS && Echo Mapowanie powiodło sie && Goto End
CLS && Blad mapowania dysku %Dysk% do %Share%
:End
litera_dysku to litera dysku, do której mapowany jest element współużytkowany,
a serwer zawiera nazwę_elementu, którą chcesz mapować.
Mapowanie dysków według grupy
Mapowanie dysków według członkostwa w grupie pozwala na kontrolowanie dostępności napędów i zasobów dla poszczególnych użytkowników. Narzędzie z pakietu Resource Kit
o nazwie IfMember pozwala ustalić członkostwo użytkownika w grupie poprzez wiersz poleceń. Podstawowa składnia narzędzia IfMember wygląda w następujący sposób:
IfMember /Polecenia Grupy
grupy to dowolne grupy, których członkostwo chcesz sprawdzić, są one oddzielone spacjami. Poziom błędu errorlevel równy / wskazuje, że użytkownik jest członkiem podanej grupy. Dostępne polecenia to:
/List — wyświetla wszystkie*grupy, do których należy użytkownik,
/Verbose — wyświetla wszystkie pasujące grupy.
Aby poprzez znak zachęty dokonać mapowania dysku sieciowego zgodnie z członkostwem
w grupie oraz aby wyświetlić status, wykonaj następujące czynności:
Utwórz nowy katalog dla wszystkich plików, które są wykorzystywane w tym przykładzie.
Wybierz Start\Uruchom i wprowadź plik_skryptowy.bat.
p1ik_skryptowy oznacza tutaj pełną ścieżkę i nazwę pliku skryptowego, który zawiera poniższe polecenia:
@Echo Off
CLS ; Oczyszcza ekran
Pełna_ścieżka\lfMember Nazwa_grupy > Nul
If Not %errorlevel% EQU 1 Goto End
Set Dysk=Litera_dysku
Set Share=\\serwer\nazwa_elementu
Echo Mapowanie dysku %Dysk% do %Share%
Net Use %Dysk%: /Delete && CLS
Net Use %Dysk%: %Share%
If %errorlevel% EQU 0 CLS && Echo Mapowanie powiodło sie && Goto End
CLS && Blad mapowania dysku %Dysk% do %Share%
:End
pełna_ścieżka to kompletna ścieżka katalogu, w którym znajduje się IfMember, nazwa _grupy to nazwa grupy, której członkostwo należy sprawdzić, litera_dysku to litera dysku, do której mapowany jest element współużytkowany, NEQ to operator „nie jest równy", EQU to operator ,jest równy", serwer zawiera nazwę_elementu, którą chcesz mapować, a && pozwala na wykonanie kolejnej komendy po zakończeniu poprzedniej.
Wyświetlanie pozdrowień zależnych od pory dnia
Chociaż nie jest to wymagane, wielu administratorów lubi wyświetlać użytkownikowi pozdrowienie zależne od pory dnia. Aby tego dokonać poprzez wiersz poleceń, wykonaj następujące czynności:
Utwórz nowy katalog dla wszystkich plików, które są wykorzystywane w tym przykładzie.
Wybierz StarĄUruchom i wprowadźplik_skryptwy.bat.
plikjskryptowy oznacza, tutaj pełną ścieżkę i nazwę pliku skryptowego, który zawiera poniższe polecenia:
@Echo Off
CLS
For /F "Delims=: Tokens-1" %%I in ('Time /T') Do Set Godz=%%1
For /F "Del1ms=: Tokens-2" %%I in ('Time /T') Do Set Min=%%1
For /F "Delims-0.1.2.3.4,5.6.7,8,9 Tokens=2" %%I in
('Set Min') Do Set AP=%%I
If %AP% EQU p Goto PM
Set Powitanie=Dzien dobry
Goto End
:PM
If %Godz% EQU 12 Set Godz=0
If %Godz% LSS 12 Set Powitanie=Dobry wieczór
If %Godzt LSS 6 Set Powitanie=Miłego popołudnia
:End
Echo %Powitanie%
Set Godz=
Set Min=
Set AP=
Wyróżniony kod musi znaleźć się w jednej linii.
Polecenie Time /T nakazuje użycie lokalnego czasu systemowego.