Wprowadzenie do instrukcji If systemu Windows PowerShell
Instrukcja ” If ” PowerShell jest pod parasolem flow control. Po opanowaniu podstawowej konstrukcji możesz zwiększyć jej użyteczność, dodając wyrażenia ' Else 'I ' ElseIf'. Jedną z moich ulubionych strategii alternatywnych jest użycie 'Switch'.,
tematy dla instrukcji PowerShell If
- Budowa instrukcji ” If ”
- przykład 1: zwykły If
- przykład 2: If … Else
- przykład 3: PowerShell ElseIf
- PowerShell If-Not
- PowerShell If-Or
- podsumowanie konstrukcji PowerShell 'S If
Budowa Instrukcja” if ” PowerShell
podobnie jak w przypadku wielu konstrukcji PowerShell, typ nawiasu oznacza podział Skryptu na sekcje., Warto zapamiętać, że (nawiasy nawiasowe są dla pierwszej części, czyli warunku), natomiast {klamry są dla Komendy blokowej}.
If (condition) {Do stuff}# Another explanation would beIf (test) {"Execute when true"}
Podsumowanie: w PowerShell 'If' wykonuje polecenia zależne od prawdziwości wyrażenia testowego.
przykład 1a: zwykły”If”
# PowerShell If Statement Simple Example$Number = 10If ($Number -gt 0) {"Bigger than zero"}
punkty nauki
Uwaga 1: prześledzić powyższą konstrukcję i oddzielić dwa komponenty: if (test) i {co robić}.
Uwaga 2: unikaj przesadnego myślenia; nie ma „Then” w instrukcji ” If ” PowerShell., Moja rada jest taka, że zamiast martwić się o „Jeśli wtedy”, zwróć szczególną uwagę na dwa rodzaje wsporników. Co więcej, nie ma endif w PowerShell jak w VBScript.
Uwaga 3: aby dokładnie sprawdzić swoje zrozumienie, spróbuj zmienić „większy niż Zero „na inny ciąg tekstowy, np.:”mniej niż zero”. Gdy to zrobisz, Ustaw $Number na -1 w powyższym przykładzie 1a.
przykład 1B: skrypt PowerShell sprawdzający, czy plik istnieje
Uwaga 4: prawdopodobnie chcesz zmienić plik, do którego odwołuje się $ChkFile., Rzeczywiście, skrypt wymaga modyfikacji dla bardziej konstruktywnego {outcome}.
Uwaga 5: możesz łatwo dołączyć instrukcję else, aby zaspokoić potrzeby nieistniejącego pliku.Else {Write-Host "File does not exist"}
Zobacz więcej na ścieżce testowej PowerShell
Guy poleca: darmowy Monitor WMI dla PowerShell (darmowe narzędzie)
Windows Management Instrumentation (WMI) to jeden z ukrytych skarbów systemów operacyjnych Microsoft., Na szczęście SolarWinds stworzyło darmowy Monitor WMI dla PowerShell, dzięki czemu można odkryć te perełki informacji o wydajności, a tym samym poprawić skrypty PowerShell.
sprawdź, z jakich liczników WMI korzystać podczas skryptowania systemu operacyjnego, Active Directory lub serwera Exchange. Wypróbuj ten monitor WMI – to nic nie kosztuje.
SolarWinds WMI Monitor Pobierz 100% darmowe narzędzie
If Logika i taktyka
rzadko zdarza się, że moja pierwsza konstrukcja ” If ” daje pożądane rezultaty., Sekretem sukcesu jest eksperymentowanie z testem If lub alternatywnie rozpoczęcie wprowadzania jednego lub więcej testów 'ElseIf z odpowiadającym im blokiem {outcome block}.
w tym przykładzie wprowadziłem-Not do logiki:
przykład 1B: polecenie PowerShell If-Not do sprawdzania usługi
uwaga 6: Ten skrypt używa właściwości Display Name usługi. Pamiętaj w PowerShell 'If Then' nie istnieje. Zauważ, że to zwykłe „jeśli”.
Uwaga 7: przestrzegaj przy przechodzeniu konstrukcji If-Not; nawiasem mówiąc, -Not jest czasami skracany do wykrzyknika ! w PowerShell.,
Uwaga 8: Ten skrypt woła o wypowiedź Else. Musimy wiedzieć, czy dana usługa została zainstalowana.
Uwaga 9: Zobacz więcej na-ErrorAction SilentlyContinue
przykład 1C: polecenie PowerShell If sprawdzające adresy IP
oto kolejny prawdziwy przykład 'polecenia If' w akcji. Chodzi o to, aby ping 20 adresów IP. Logika mówi, że jeśli kod stanu wynosi 0, wyświetla etykietę z napisem „w sieci”.
Uwaga 10: raz, jeśli instrukcje się skomplikują, nadszedł czas, aby zbadać parametr przełącznika PowerShella.,
gość poleca: Network Performance Monitor (FREE TRIAL)
SolarWinds Network Performance Monitor (NPM) pomoże Ci odkryć, co dzieje się w Twojej sieci. To narzędzie poprowadzi Cię również przez rozwiązywanie problemów; pulpit nawigacyjny wskaże, czy główną przyczyną jest zepsuty link, wadliwy sprzęt lub przeciążenie zasobów.
najbardziej podoba mi się sposób, w jaki NPM proponuje rozwiązania problemów sieciowych. Its ma również możliwość monitorowania kondycji poszczególnych maszyn wirtualnych VMware., Jeśli jesteś zainteresowany rozwiązywaniem problemów i tworzeniem map sieciowych, polecam wypróbowanie NPM w 30-dniowym bezpłatnym okresie próbnym.
SolarWinds Network Performance Monitor Pobierz 30-dniową bezpłatną wersję próbną
przykład 1D: Zawartość pliku przykład zwykłego ” If ”
PowerShell ma partię plików pomocy. Jeden z tych plików zawiera pomoc dotyczącą instrukcji „if”. W poniższym przykładzie, $File odwołuje się do tego pliku. $Content jest ustawiany na zawartość pliku. Trzecia linia próbuje dopasować łańcuch znaków do zawartości pliku.,
punkty uczenia się
powyższy przykład dotyczy dopasowania ciągu znaków „Instrukcja if” do zawartości wbudowanego pliku pomocy.
przykład 2a: 'If' z 'Else'
Ten przykład dotyczy zwykłego 'Else'. Jest to proste polecenie, w przeciwieństwie do else jeśli nie ma drugiej konstrukcji testowej, 'Else' po prostu odzwierciedla, co zrobić, jeśli instrukcja If jest fałszywa.
punkty uczenia się
najlepszym sposobem sprawdzenia jak działa „else”jest zmiana linii 3 w ten sposób:
($File-Match „the ifyyyy Statement”).,
przykład 2b: sprawdzanie, czy usługa została zainstalowana
Zobacz więcej na PowerShell Else „
Guy poleca: SolarWinds Engineer ' s Toolset (FREE TRIAL)
Ten Zestaw Narzędzi inżyniera zapewnia kompleksową konsolę 50 narzędzi do rozwiązywania problemów z komputerem. Facet mówi, że pomaga mi monitorować to, co dzieje się w sieci, a każde narzędzie uczy mnie więcej o tym, jak działa podstawowy system.
jest tyle dobrych gadżetów, to jak mieć wolną rękę w cukierni., Na szczęście narzędzia są wyświetlane logicznie: monitorowanie, wykrywanie sieci, diagnostyka i narzędzia Cisco. Wypróbuj Zestaw Narzędzi inżyniera SolarWinds na 14-dniowym bezpłatnym okresie próbnym już teraz!
SolarWinds Engineer ' s Toolset Pobierz 14-dniową bezpłatną wersję próbną
przykład 2C: PowerShell If-Not Logic
celem tego skryptu jest użycie-nie logiki do sprawdzenia usługi Alerter. Jednym ze scenariuszy jest to, że pracujesz z komputerami z systemem Windows 7 i nie instalują już tej usługi.
obserwuj jak-nie odwraca logiki 'jeśli' w porównaniu z przykładem 1.,
Uwaga 11: Zobacz więcej przykładów logiki If-Not W PowerShell.
przykład 2D: NetSh
celem tego przykładu jest sprawdzenie stanu zapory sieciowej na komputerze klienckim systemu Windows, takim jak Windows 8.1 lub Windows 7.
badanie If, Else i ElseIf
- aby uzyskać więcej informacji, zapoznaj się z wbudowanym plikiem About_If
- zobacz, Jak wyłączyć zapory systemu Windows 8 za pomocą zasady grupy.
Get-Help About_If
przykład 3: ElseIf
Ten przykład ma prawdziwe zadanie; aby sprawdzić, czy mamy nazwę rzeczywistego pliku., Pamiętaj, że po drugiej (instrukcji testowej) musi nastąpić drugi {skrypt blokowy}.
Więcej informacji na temat konstrukcji ElseIf w PowerShell „
punkty do nauki
Uwaga 12: zaletą ElseIf jest możliwość wprowadzenia nowego testu. W powyższym przykładzie używamy ElseIf, aby sprawdzić, czy długość pliku jest mniejsza niż 1., Aby aktywować blok 'ElseIf', Ustaw $File na nieistniejący plik, na przykład$File = Get-Help about_ifxx
Uwaga 13: aby wywołać ostateczną 'Else', spróbuj zmienić:$File = Get-Help about_if
Na$File = Get-Help about_scope
Jeśli masz czas, możesz dodać więcej „ElseIf” wypowiedzi, aby zaspokoić inne ewentualności. Alternatywnie, jeśli konstrukcja ElseIf staje się nieporęczna, spróbuj użyć polecenia superior switch.
gość poleca: SolarWinds Admin Bundle for Active Directory (FREE TOOL)
Import użytkowników z arkusza kalkulacyjnego., Wystarczy podać listę użytkowników z ich polami w górnym wierszu i zapisać jako .plik csv. Następnie uruchom to bezpłatne narzędzie i dopasuj pola do atrybutów reklamy, kliknij i zaimportuj użytkowników.
Opcjonalnie możesz podać nazwę OU, w którym powstaną nowe konta. Pobierz bezpłatne narzędzie importu zbiorczego.,”0de5877345″> SolarWinds Admin Bundle Pobierz w 100% darmowy pakiet narzędzi
Jeśli potrzebujesz bardziej kompleksowego oprogramowania do analizy aplikacji, Pobierz bezpłatną wersję próbną programu SAM (Server & Application Monitor)
About_If
Jeśli chcesz mieć inne konto instrukcji If PowerShell, spójrz na wbudowany plik pomocy p>
# For even more information about 'If' and 'ElseIf' constructions:Get-Help about_If
jest to wyjaśnienie firmy Microsoft:
if (<test1>){<statement list 1>}
Windows PowerShell ocenia <test1> wyrażenie warunkowe jako true lub false., Jeśli wynik będzie prawdziwy, PowerShell będzie posłuszny temu, co znajduje się wewnątrz {nawiasy klamrowe}, po czym PowerShell zakończy instrukcję If.
W przypadku, gdy pierwszy test jest fałszywy PowerShell działa poprzez instrukcje ElseIf.
nawiasem mówiąc, 'pojazd' do naszych testów ujawnia całą rodzinę plików 'about_zyx…'. Chodzi mi o to, że nie ma komendy: 'Get-Help if', jednak istnieje plik pomocy o nazwie 'about_if'. Ponadto, jeśli zajrzysz do katalogu PowerShell, zobaczysz pliki „About”, które pomagają w komendach takich jak ” If ” I „ElseIf”., Możesz wyświetlić listę plików 'About' za pomocą polecenia:
Zobacz więcej w Help about*
„
podsumowanie konstrukcji If W PowerShell
jeśli chodzi o filtrowanie danych wyjściowych, jedną z najstarszych i najlepszych instrukcji jest klauzula 'If'. Jak zwykle sekretem zrozumienia składni jest zwrócenie szczególnej uwagi na styl nawiasu. If (nawias dla testu) i {klamry dla akcji}. Po opanowaniu podstawowego stwierdzenia ” If ” rozszerz swoje możliwości, badając „Else” I „ElseIf”.,
Jeśli podoba Ci się ta strona, podziel się nią ze znajomymi
Zobacz więcej przykładów kontroli przepływu Windows PowerShell
• PowerShell Home • PowerShell If Statement • PowerShell ElseIf • Free Permissions analizator
• operatory warunkowe • PowerShell-match • PowerShell-like • PowerShell-contains
• operatory porównawcze PowerShell • składnia PowerShell • gdzie filter • PowerShell else
napisz do mnie, jeśli masz lepszy przykładowy skrypt., Proszę również o zgłaszanie błędów rzeczowych, gramatycznych lub niedziałających linków, chętnie poprawię usterkę.