Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rozdział2:SkryptyprogramuWindowsPowerShell
53
PRZYKŁAD:
>GetDriveArgs.ps1all
Wypisujeinformacjeowszystkichdyskach
>GetDriveArgs.ps1c
Wypisujeinformacjetylkoodyskuc
>GetDriveArgs.ps1free
Wypisujeinformacjeoilościwolnegomiejscanadyskuc
"@;Write-Host$help}
}
}
#$args="help"
funArg($args)
UżywanieznakówuogólniającychwinstrukcjiSwitch
Jednymzbardziejinteresującychzastosowańinstrukcjiswitchjeststosowanietzw.znaków
uogólniających(ang.wildcards).Stwarzatonowemożliwościtworzeniazwartegoiprzej-
rzystegokodu,którymożeoferowaćogromnemożliwościprzyjednoczesnymzachowa-
niułatwościimplementacji.SkryptSwitchIPConfig.ps1przechowujerezultatpolecenia
ipconfig/allwzmiennej$a.Instrukcjaswitchzostaławtymskrypcieużytazparametrem
-wildcard,atekstdoprzeanalizowaniaprzezinstrukcjęzostałjejprzekazanywewnątrz
nawiasówzwykłych.Dalejnastępujeotwarcieblokukoduzapomocąnawiasuklamro-
wego,poktórymwpisanyzostałwzorzecdoporównania.Wtymprzypadkujesttoproste
wyrażenie*DHCPServer*.Wblokuskryptu,któryzostaniewykonany
,jeślibadanewyra-
żeniepasowaćbędziedopodanegowzorca,użytezostałopoleceniecmdletWrite-Host,
wypisującetreśćbieżącejliniianalizowanejwblokuinstrukcjiswitch.Interesującejest
użyciewtymprzykładziezmiennejautomatycznej$switchjakozmiennejlicznikowej.
Wskazaniewłaściwościcurrenttejzmiennejpozwalanapobranieaktualnieprzetwarzanej
linii.Umożliwiatowypisywanietylkotychlinii,którymijesteśmyzainteresowani.Treść
skryptuSwitchIPConfig.ps1zostałapokazanaponiżej.
SwitchIPConfig.ps1
$a=ipconfig/all
switch-wildCard($a)
{
"*DHCPServer*"{Write-Host$switch.current}
}
UżywanieinstrukcjiSwitchzwyrażeniamiregularnymi
Wprzeciwieństwiedozwykłejinstrukcjiselectcase,instrukcjaswitchdajemożliwośćkorzy-
staniazwyrażeńregularnych.Wyszukującważnychinformacjimożnanp.otworzyćplik
tekstowyprzyużyciuinstrukcjiswitch,wczytaćzawartośćtegoplikudopamięci,anastęp-
nieprzetworzyćzawartośćprzyużyciuwyrażeńregularnych.Wyrażeniaregularnemogą
byćtakproste,jakwyszukiwaniekonkretnychsłówlubwyrażeń,albotakzłożone,jak
sprawdzaniepoprawnościadresówe-mail.PokazanyponiżejskryptSwitchRegEx.ps1
sprawdzaprzykładowypliktekstowypodkątemwystępowaniawnimdwóchsłów:test
(test)orazgood(dobry).Jeśliwdanejliniiznalezionezostaniektórekolwiekztychsłów,
towypisanazostaniecałalinia,wktórejjeznaleziono.