Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
52
WindowsPowerShellprzewodnikposkryptach
DisplayComputerRoles.ps1
$wmi=get-wmiobjectwin32_computersystem
"computer"+$wmi.name+"is:"
switch($wmi.domainrole)
{
0{"`tAutonomicznastacjarobocza"}
1{"`tCzłonkowskastacjarobocza"}
2{"`tSerwerautonomiczny"}
3{"`tSerwerczłonkowski"}
4{"`tZapasowykontrolerdomeny"}
5{"`tPodstawowykontrolerdomeny"}
default{"`tNiemożnaokreślićrolikomputera"}
}
Sprawdzaniewartościargumentówpodawanychwwierszu
poleceńEvaluatingCommand-LineArguments
InstrukcjaSwitchdoskonalenadajesiędobadaniawartościargumentówpodawanych
wwierszupoleceń.WzamieszonymponiżejprzykładowymskrypcieGetDriveArgs.ps1,
dosprawdzaniawartościautomatycznejzmiennej$argsmożnawykorzytaćfunkcjęonazwie
funArg.Tazmiennaautomatycznazawieraargumentypodanewwierszupoleceńpodczas
uruchamianiaskryptu.Jesttobardzowygodnazmiennawprzypadkupracyzargumen-
tamiwierszapoleceń.InstrukcjaSwitchużywanajestwtymprzykładziedosprawdzania
wartościzmiennej$args.Wpokazanymponiżejskrypciedopuszczalneczterywartości
argumentówparametru.ArgumentalloznaczapobraniezapomocązapytaniaWMIpod-
stawowychinformacjiowszystkichzainstalowanychwkomputerzedyskachlogicznych.
ArgumentcsłużydopobraniainformacjitylkoodyskuC.Zastosowanotupewienintere-
sującytrik.Pierwszymdyskiemjestzwyklenapęddyskietek,adrugimelementemtablicy
jestwówczasdyskC.Jeślijednakwdanymsystemiewystępujeinnyprzypadek,tonależy
odpowiedniotozmienić.Celemtegoskryptubyłopoprostuzaprezentowaniezastosowa-
niainstrukcjiswitchdoanalizyargumentówpodawanychwwierszupoleceń.Używanie
numeruelementutablicyjestwygodnymsposobempobieraniainformacjizobiektówWMI
wprogramieWindowsPowerShell.Argumentfreesłużydozwracaniajedynieinformacji
oilościwolnegomiejscanadyskuC.
Argumenthelpsłużynatomiastdowypisywaniatekstupomocy
.Dlaułatwieniawpisania
tegotekstuzastosowanazostałaspecjalnafunkcjatzw.wstawkitekstowej(ang.here-string).
Tekstpomocywyświetlakrótkąinformacjęoprzeznaczeniuskryptu,wrazzkilkomaprzy-
kładamijegoużycia.
GetDriveArgs.ps1
FunctionfunArg()
{
switch($args)
{
"all"{gwmiwin32_logicalDisk}
"c"
{(gwmiwin32_logicaldisk)[1]}
"free"{(gwmiwin32_logicaldisk)[1].freespace}
"help"{$help=@"
Tenskryptmożewypisywaćinformacjeowszystkichdyskach,
tylkoodyskucluboilościwolnegomiejscanadyskuc:
Skrypttenmożetakżewyświetlaćtekstpomocy