Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
48
WindowsPowerShellprzewodnikposkryptach
WskazówkaZmiennaśrodowiskowa%computername%jestzawszedostępnaimożebyć
używanawskrypciedoustalenianazwykomputera.Jednymzprostychsposobówpobrania
wartościtejzmiennejjestodczytaniejejzwirtualnegodyskuprogramuPowerShell,env:\.
NazwękomputerazawierawłaściwośćValuetejzmiennej.Przykład:(Get-ltemenv:\compu-
terName).value.
StosowanieparametruProcess
Wsekcjiwyznaczonejprzezparametr-processnależypoprostuużyćbieżącyobiektpotoku
(oznaczonyprzezzmiennąautomatyczną$_)dowypisaniawłaściwościPnpDeviceID,klasy
WMIWin32_USBHub.Równieżwtymprzypadkukoniecznejestużycieodwróconegoapo-
strofudooznaczeniakontynuacjilinii.
StosowanieparametruEnd
OstatniasekcjaskryptuProcessUsbHub.ps1zawieraparametr-end.Wsekcjitejznajduje
sięcmdletWrite-Hostwypisującytekstoznaczającyzakończeniewykonywaniapolecenia
orazwyrażeniepodrzędnesłużącedowypisaniawartościzwróconejprzezcmdletGet-Date.
CałośćskryptuProcessUsbHub.ps1zostałapokazanaponiżej.
ProcessUsbHub.ps1
Get-WmiObjectwin32_usbhub|
foreach-object`
-begin{Write-Host"KoncentratoryUSBna:"$(Get-Itemenv:\computerName).value}`
-process{$_.pnpDeviceID}
`
-end{Write-Host"Poleceniezostałowykonane$(get-date)"}
UżywanieinstrukcjiFor
PodobniejakcmdletForEach-Object,instrukcjaforsłużydokontrolowaniawykonywania
blokuskryptutakdługo,jakdługoprawdziwyjestpodanywaruneklogiczny
.Przeważnie
instrukcjaforużywanajestdowykonywaniapewnejakcjiokreślonąilośćrazy
.Zkonstruk-
cjąinstrukcjiformożnasięzapoznaćnaprzykładziezamieszczonejponiżejliniikodu.
Testowanewyrażeniesterująceprzebiegiempętlioddzielonejestodblokukoduumieszczo-
negownawiasachklamrowychzapomocąnawiasówzwykłych.Wyrażeniesterująceskłada
sięztrzechczęści.Pierwszaczęśćzawierazmienną$a,którejzostajeprzypisanawartość1.
Drugaczęśćzawierawaruneklogiczny
,któregowartośćbędzietestowana.Wpokazanym
poniżejprzykładziepolecenieznajdującesięwblokukodubędziewykonywanetakdługo,
jakdługowartośćzmiennej$abędziemniejszalubrówna3.Ostatniaczęśćwyrażeniaste-
rującegozawieraoperacjędodaniadowartościzmiennej$awartości1.Blokkoduwypisuje
poprostusłowohello”.
for($a=1;$a-le3;$a++){"hello"}
PokazanyponiżejskryptPingARange.ps1jestniewielkim,alebardzoprzydatnymskryp-
tem,zapomocąktóregomożnaprzeprowadzićtestpingdlapewnegozakresuadresów
IP(InternetProtocol)iuzyskaćinformacje,czykomputeryużywającetychadresów