Základy PowerShellu -Contains, -CContains & -NotContains Podmíněné operátory

Windows PowerShell -Contains

Pokud jde o filtrování nebo vyhledávání dat, máme na výběr z možností -Match, -Like a -Contains. I když se jednotlivé podmíněné operátory překrývají, každý z nich má ve skriptech prostředí PowerShell svou osobitou úlohu.

-Contains je nejlepší pro hledání přesné hodnoty. Pokud chci, aby příkaz vrátil buď True, nebo False, začnu s -Contains, zatímco pokud chci seznam výsledků, zkusím -Match nebo -Like.

Témata pro podmíněný operátor -Contains prostředí PowerShell

  • Příklad 1: PowerShell -Contains (základ)
  • Příklad 2: Hledání hodnoty v kolekci
  • Příklad 3: PowerShell -Contains Spreadsheet
  • Příklad 4: PowerShell -CContains
  • Příklad 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Příklad 1a: PowerShell -Contains

PowerShell používá podstatná jména v jednotném čísle, proto je „contains“ sloveso a ne podstatné jméno v množném čísle. Vlastností příkazu -Contains je, že obvykle vrací hodnotu „True“ nebo „False. Pokud hledáte příkaz, který vrátí seznam hodnot, použijte -Match nebo -Like.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flat","Bungalow")$ArraySimple -Contains "Flat"# Result PS> True

Příklad 1b:

Příkaz -Contains může být frustrující, protože je velmi vybíravý. Po chvíli si uvědomíte, že je to jen designová vlastnost, pokud se vám nelíbí, zkuste -Match.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flats","Bungalow")$ArraySimple -Contains "Flat"# Result PS> False

Poznámka 1: -Contains interpretuje „Flats“ a „Flat“ jako různé, a proto vrací False; nezáleží na tom, že Flat je podmnožinou Flats.

Výzva: Nahraďte -Match za -Contains.

Guy doporučuje: (FREE TOOL)

Windows Management Instrumentation (WMI) je jedním ze skrytých pokladů operačních systémů společnosti Microsoft. Společnost SolarWinds naštěstí vytvořila bezplatný monitor WMI pro prostředí PowerShell, abyste mohli tyto klenoty informací o výkonu objevit a vylepšit tak své skripty prostředí PowerShell.

Zbavte se dohadů, které čítače WMI použít při skriptování operačního systému, služby Active Directory nebo serveru Exchange. Vyzkoušejte tento monitor WMI – je zdarma.

SolarWinds WMI Monitor Download 100% Free Tool

Příklad 2: Hledání hodnoty v kolekci

-Contains bych zvolil jako podmíněný operátor pro situace, kdy bych chtěl testovat jednu konkrétní položku v kolekci, poli nebo hashtable.

# PowerShell -Contains$Collection = "Peter Smith", "Paula Harris", "Joan Evans"$Collection -Contains "Paula"# Result PS> False

Poznámka 2: Pokud byste zakódovali: $Collection -Contains „Paula Harris“
Výsledek by byl: True. Potřebujete přesnou shodu celé položky.

Příklad 3: PowerShell -Contains Spreadsheet

Předpokládejme, že chceme vyhledávat v souboru s názvem links.csv. Dále můžeme použít Import-Csv pro načtení dat, abychom mohli testovat hodnoty pomocí -Contains.

Příprava
Můj tabulkový procesor se jmenuje links.csv
Soubor jsem uložil do D:\PowerShell
Název sloupce je „Vlastní kanál“
Viz obrázek vpravo.

Guy doporučuje:

SolarWinds Network Performance Monitor (NPM) vám pomůže zjistit, co se děje ve vaší síti. Tento nástroj vás také provede řešením problémů; ovládací panel vám ukáže, zda je hlavní příčinou nefunkční spojení, vadné zařízení nebo přetížení zdrojů.

Nejvíce se mi líbí způsob, jakým NPM navrhuje řešení síťových problémů. Má také možnost sledovat stav jednotlivých virtuálních počítačů VMware. Pokud vás zajímá řešení problémů a vytváření síťových map, doporučuji vyzkoušet NPM v rámci 30denní bezplatné zkušební verze.

SolarWinds Network Performance Monitor Stáhnout 30denní zkušební verzi ZDARMA

Příklad 4: PowerShell -CContains

Stejně jako u ostatních podmíněných operátorů prostředí PowerShell můžete i u nich vynutit rozlišování velkých a malých písmen tím, že před příkaz vložíte písmeno ‚C‘; CContains není překlep!

Poznámka 4: Jde o to, že v tabulce je hodnota jasně ‚LinkTop‘, když vynutíme citlivost na malá a velká písmena pomocí CContains, není to totéž jako ‚linktop‘, proto je výsledek False.

Příklad 5: PowerShell -NotContains

Negativní -NotContains není tak užitečný jako -NotMatch. Z toho, co jsme se již naučili, je však syntaxe předvídatelná.

Poznámka 5: Nezapomeňte, že u -Contains, a tím i -NotContains, musí být shoda přesná. Neexistuje žádný „Vlastní kanál“ s názvem přesně „odkaz“.

Podívejte se na další informace o porovnáních PowerShell s -Like“

Guy doporučuje: SolarWinds Engineer’s Toolset (FREE TRIAL)

Tento Engineer’s Toolset poskytuje komplexní konzoli 50 nástrojů pro řešení problémů s počítačem. Guy říká, že mi pomáhá sledovat, co se děje v síti, a každý nástroj mě naučí více o fungování základního systému.

Je tu tolik dobrých pomůcek; je to jako mít volnou ruku cukrárny. Naštěstí jsou nástroje zobrazeny logicky: monitorování, zjišťování sítě, diagnostika a nástroje Cisco. Vyzkoušejte si nyní sadu nástrojů SolarWinds Engineer’s Tools ve 14denní bezplatné zkušební verzi!

Sada nástrojů SolarWinds Engineer’s Tools ke stažení na 14denní zkušební verzi ZDARMA

O_operátorech

# For even more information about PowerShell Operators try:Get-Help about_Operators

Tady je seznam typů operátorů prostředí PowerShell

Podívejte se také na PowerShell -.Match“

Souhrn operátoru -Contains Conditional prostředí PowerShell

Když hledáte přesnou hodnotu, pak by byl -Contains mou první volbou podmíněného operátoru. Operátory -Match nebo -Like jsou vhodnější pro scénáře, kdy potřebujete pouze částečnou shodu nebo potřebujete seznam položek.

Podívejte se na další příklady řízení toku v prostředí Windows PowerShell

– PowerShell Home – PowerShell If Statement – PowerShell ElseIf – Free Permissions Analyzer

– Podmíněné operátory – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– PowerShell Comparison Operators – PowerShell Syntax – Where Filter – PowerShell Else

Prosím, napište mi, pokud máte lepší příklad skriptu. Také prosím nahlaste případné faktické chyby, gramatické chyby nebo nefunkční odkazy, rád závadu opravím.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *