Jak rozdělit řetězec na dvě proměnné v PowerShellu

Detailní záběr rukou psaní na notebooku. Koncept noční práce.

Pokud máte řetězec textu v Microsoft PowerShell, je často užitečné rozdělit řetězec do více proměnných.

Kredit obrázku: dusanpetkovic/iStock/GettyImages

Pokud máte řetězec textu v Microsoft PowerShell, je často užitečné rozdělit řetězec do více proměnných. Můžete mít například křestní jméno a příjmení uživatele oddělené mezerou nebo telefonní číslo začínající směrovým číslem oblasti. K tomu můžete použít vestavěnou funkci PowerShell Split. K dispozici jsou další funkce, aby PowerShell analyzoval řetězec jinými způsoby.

Porozumění prostředí Microsoft PowerShell

PowerShell je nástroj příkazového řádku a programovací jazyk poskytovaný společností Microsoft. Je to náhrada za starší nástroj pro dávkové skriptování pro Windows a DOS, který je také stále dostupný ve většině verzí Windows.

Video dne

Často se používá pro kombinování výstupu z více programů nebo předávání dat z jednoho programu do druhého, takže je užitečné jej používat pro manipulaci s řetězci.

Funkce PowerShell Split

Pokud máte řetězec v PowerShellu a chcete jej rozdělit na nějaký znak, můžete tak učinit pomocí vestavěného

Rozdělit funkce. Buď napište s -Split, kde s je proměnná obsahující řetězec, nebo zavolejte s.split. Funkce vrátí pole obsahující každý z prvků rozděleného řetězce, který můžete zachytit v proměnné jako

$a = s.split()

Můžete je přiřadit proměnným tak, že k jednotlivým prvkům přistoupíte jako $a[0], $a[1] a tak dále, nebo je ponechte v poli, pokud je to užitečnější.

Rozdělení řetězců je často užitečné, když potřebujete rozdělit uživatelský vstup nebo výstup z jiného programu na jeho součásti.

Možnosti rozdělení PowerShellu

Ve výchozím nastavení PowerShell rozdělí řetězec na mezery, včetně mezer, zalomení řádků a tabulátorů. V některých případech můžete chtít rozdělit řetězec na jiný znak, jako je čárka nebo spojovník, nebo řetězec jako "a."

Chcete-li to provést, vytvořte požadovaný znak nebo řetězec, který se má rozdělit kolem druhého argumentu funkce rozdělení, například napsáním s.split("") nebo s -split "," pro rozdělení na čárku. Ať už se rozhodnete dát PowerShellu jakoukoli postavu oddělovač, nebo oddělovač, bude vynechán ze všech výsledných řetězců.

Můžete si také vybrat a maximální počet řetězců k rozdělení poskytnutím tohoto jako dodatečného argumentu. Například "a, b, c, d".split(",",2) poskytne pole s prvky "a" a "b, c, d", zatímco "a, b, c, d". split(",") poskytne pole s každým písmenem ve vlastním řetězci.

Oříznutí řetězce v PowerShellu

PowerShell můžete nechat oříznout řetězec nebo odstranit přebytečné znaky ze začátku nebo konce pomocí oříznout funkce. Ve výchozím nastavení odstraní mezery ze začátku a konce řetězce.

Například " a ".trim() dá výsledek "a." Jako argument můžete zadat další znaky, které chcete z řetězce odstranit, takže "^$a ".trim(" ^") dá výsledek "$a."

Pomocí funkcí TrimStart a TrimEnd můžete odstranit pouze znaky ze začátku nebo konce řetězce.

To je často užitečné, když máte data získaná od uživatele, který je zadal do vstupního pole se zvláštními mezerami nebo novými řádky na konci.

Funkce PowerShell Join

Stejně jako v jiných programovacích jazycích, PowerShell's připojit se funkce je v podstatě opačná rozdělit. Bere více řetězců a kombinuje je dohromady s daným oddělovačem nebo bez mezery.

Například -join ("a","b","c") dá výsledek "abc", zatímco "a","b","c" -join " " dá výsledný řetězec "ab c" ." To může být užitečné, když máte více proměnných, které potřebujete zkombinovat do jedné pro uložení do souboru, předání do jiného příkazu nebo výstup uživateli.