[ Pobierz całość w formacie PDF ]
.Zwróæ uwagê, i¿ w pliku Alphabetize.bat %1 jest ujête w cudzys³Ã³w.Nie jest to jednakwymóg.Równie dobrze moglibySmy napisaæ %1$==$.Jednak w ten sposób upewnia-my siê, ¿e interpreter poleceñ zawsze znajdzie jakieS wartoSci po obu stronach znakurównoSci.JeSli nie bêdzie tam ¿adnego znaku, odczyta ten wiersz jakoif == goto usageRozdzia³ 10: Automatyzacja Windows XP 317Rezultatem bêdzie b³¹d sk³adniowy powoduj¹cy zakoñczenie programu wsadowe-go.Cudzys³Ã³w jest dobrym sposobem upewnienia siê, ¿e ¿adna ze stron równania niejest pusta.Tak wiêc pierwszy wiersz tej sekcji (wiersz 6) utworzono na wypadek, gdy nie zosta-nie u¿yty ¿aden parametr wiersza polecenia, i odsy³a on procesor polecenia do etykie-ty Usage (linia 59), gdzie program wySwietla instrukcje u¿ywania pliku Alphabetize.Wiersze7i 8robi¹ to samo: odpowiadaj¹ na ¿¹dania o pomoc.Poniewa¿ porównaniew instrukcji If wymaga dok³adnego odpowiednika, w linii 8 u¿yliSmy prze³¹cznika/I, który powoduje, ¿e instrukcja If ignoruje pisowniê wielkimi/ma³ymi literami.Prze³¹cznik ten dostêpny jest tylko wtedy, gdy w³¹czono rozszerzenia polecenia.Prze³¹cznik /I pokonuje powa¿ne ograniczenie wczeSniejszych wersji MS-DOSi Windows, w których konieczne by³o utworzenie kilku instrukcji If, aby uwzglêdniæwszystkie odmiany wynikaj¹ce z kapitalizacji s³owa help.Na przyk³ad mo¿esz testo-waæ dla help, HELP i Help a i tak nie s¹ to przecie¿ wszystkie mo¿liwe formy.JeSli wiersz polecenia zawiera parametry, które nie s¹ ¿¹daniami pomocy, wa¿ne staj¹ siêwiersze 9- 11.Polecenia Set przydzielaj¹ parametry wiersza poleceñ zmiennym Srodowi-skowym, których mo¿emy u¿ywaæ póxniej w programie wsadowym.JeSli drugi para-metr wiersza poleceñ jest pusty ("%2" == ""), domySln¹ akcj¹ staje siê sortowanie (Sort).W wierszach 13-25 utworzyliSmy grupê zmiennych Srodowiskowych, których zada-niem jest poinformowanie pozosta³ej czêSci programu wsadowego, co nale¿y robiæ.Wiersze 13 i 14 nadaj¹ domySln¹ wartoSæ False zmiennym StartMenu i Favorites.In-strukcja Goto %Type% (wiersz 15) przenosi przetwarzanie do etykiety, która odpo-wiada ustalonej wczeSniej zmiennej Type.Poniewa¿ w etykietach nie s¹ rozró¿nianewielkie i ma³e znaki, nie ma znaczenia, czy u¿ytkownik wpisze both, Both, czy jesz-cze jak¹S inn¹ formê.Pozosta³a czêSæ tej sekcji nadaje zmiennym StartMenu i Favori-tes wartoSæ True, jeSli maj¹ one byæ dalej przetwarzane.JeSli nie, pozostaj¹ one przywartoSciach False.Instrukcje Goto %Action% (wiersze 18, 21 i 25) przekazuj¹ prze-twarzanie do odpowiedniej sekcji programu wsadowego do etykiety Sort (wiersz27) lub Undo (wiersz 41).Teraz dochodzimy do serca programu.Wiersze 27-39 umo¿liwiaj¹ sortowanie menu,natomiast wiersze 41-57 przywracaj¹ stary uk³ad menu.Parametry zastêpowalnePowinieneS pamiêtaæ, ¿e oprócz parametrów %1 %9 w programie znajduj¹ siêjeszcze dwa inne wa¿ne zastêpowalne parametry: %* i %0.%* reprezentuje wszystkie argumenty wiersza polecenia.Jednym z najlepszychmiejsc dla tego parametru jest instrukcja For.In.Do.Na przyk³ad mo¿esz wzbo-gaciæ program CleanRecent.bat (program wsadowy opisany wczeSniej), zmieniaj¹cjego instrukcjê For w nastêpuj¹cy sposób:for %%t in (%*) do del "%userprofile%"\recent\*.%%t.lnkNastêpnie mo¿esz wpisaæ rozszerzenia, które chcesz usun¹æ (rozdzielone spacja-mi) w wierszu polecenia.Mo¿esz wpisaæ dowoln¹ liczbê rozszerzeñ.%0 reprezentuje nazwê polecenia (czyli innymi s³owy, nazwê programu wsadowego).318 CzêSæ II: Dostosowywanie Windows XPPrzejScie do innego folderu za pomoc¹ poleceñ Pushd i PopdW programach wsadowych czêsto konieczne jest utworzenie zadania polegaj¹cegona przejSciu do innego folderu, wykonaniu tam jakiejS czynnoSci i powrocie do fol-deru wyjSciowego.Problem polega na tym, ¿e program wsadowy mo¿na urucho-miæ z dowolnego folderu.JeSli nie wiesz, w jakim folderze jesteS, to trudno ci bêdziedo niego wróciæ.Na szczêScie pomoc¹ s³u¿¹ instrukcje Pushd i Popd.Instrukcja Pushd zapisuje bie¿¹cy folder i przechodzi do wybranego folderu.In-strukcja Popd przywraca folder wyjSciowy.Zazwyczaj instrukcje te u¿ywane s¹tylko w folderach wsadowych, ale poni¿szy przyk³ad z wiersza poleceñ pokazujeich dzia³anie:C:\bat>pushd \dataC:\data>pushd salesC:\data\sales>popdC:\data>popdC:\bat>Prawdopodobnie intuicyjnie rozumiesz, o co chodzi, ale warto wyjaSniæ, ¿e pushw nazwie polecenia oznacza od³o¿enie czegoS na stosie, w tym przypadku nazw fol-derów.Natomiast pop oznacza, ¿e górny element jedyny, do którego masz dostêp zostaje zdjêty ze stosu.W tym przyk³adzie najpierw umieSciliSmy folder Bat na stosie.GdybySmy go terazzdjêli, wrócilibySmy do folderu Bat.Jednak zamiast tego od³o¿yliSmy na stosie ko-lejny folder o nazwie Data.Bêdziemy musieli zdj¹æ go ze stosu, zanim bêdziemymogli wróciæ do folderu Bat.OczywiScie w programie wsadowym bêdziemy wy-konywali jak¹S czynnoSæ w ka¿dym folderze, zanim umieScimy na stosie kolejnyfolder lub te¿ zdejmiemy górny folder, wracaj¹c do starego folderu.Sekcja Sort rozpoczyna od sprawdzenia, czy wartoSæ zmiennej Favorites wynosi True,w linii 29.JeSli nie, przetwarzanie Favorites zostaje pominiête.Nastêpnie instrukcja RegExport (wiersz 30) tworzy plik, w którym zapisana zostaje bie¿¹ca kolejnoSæ folderuUlubione (Favorites).Zmienna Srodowiskowa AppData s³u¿y do zlokalizowania folde-ru Inside Out, który zosta³ utworzony na pocz¹tku programu wsadowego.Po utworze-niu kopii zapasowej instrukcja Reg Delete (wiersz 31) usuwa z rejestru wszystkie infor-macje o kolejnoSci elementów w folderze Ulubione.Bez tej informacji w rejestrze menuwraca do domySlnego porz¹dku alfabetycznego.Prze³¹cznik /F powoduje, ¿e programnie wymaga potwierdzenia, a > Nul eliminuje komunikat o zakoñczeniu
[ Pobierz całość w formacie PDF ]