1.17.12. fejezet, String kezelés

Kétféle string kezelés van, ami hasonlít a PHP string kezeléséhez. A egyszerű 'szöveges idézőjelek' közé zárt szövegben az értékek nem helyettesítődnek a változók értékeivel, és a speciális karakterek sem váltanak ki semmit, míg a "dupla $idézőjelek" közé zárt szövegben a változók értékei helyettesítésre kerülnek és a speciális karakterek is helyettesítődnek (pl.: `n a soremelés, `t tabulátor).

$érték1 = 'szalma ''$széna'''
$érték2 = "'boglya' $érték1"
# érték2 : 'boglya' szalma '$széna'

Összefűzésük azonban eltér a PHP-tól:

$myString = 'This string includes ' + "'" + 'single quotes' + "'"

Első elem indexe az 0-ás:

"'boglya'".Insert(1,"széna")
# 'szénaboglya'

Többsoros szöveget a PowerShell ISE-ben a shift+enter billentyű kombinációval készíthetünk. Script esetében a "here string"-et használjuk (hasonlóan a bash-hoz ahol

$myString = @"
This is the first line of a very long string. 
A "here string" lets you create blocks of text 
that span several lines.
"@

Speciális karaktereket - mint az újsor vagy tabulátor - a ferde idézőjellel szúrhatunk be:

"Report for Today`n----------------"
#Report for Today
#----------------

Kifejezések is beilleszthetők $() között:

$header = "Report for Today"
$myString = "$header`n$('-' * $header.Length)"
$myString
#Report for Today
#----------------

Vagy másképpen a formázó kifejezést használva:

$myString = "{0}`n{1}" -f $header,('-' * $header.Length) 

Formázáshoz lásd még a .Net String.Format leírását. (Standard numeric format strings,Standard Date and Time Format Strings,Enumeration format strings,Standard TimeSpan Format Strings)

String konvertálása számmá

$string = "1234"
$integer = [int]$string

String kovertálása dátummá és vissza

$invoice = "01-06-16"
[datetime]::parseexact($invoice, 'dd-MM-yy', $null)
[datetime]::parseexact($invoice, 'dd-MM-yy', $null).ToString('yyyy-MM-dd')