Zoeken…


Syntaxis

  • "(Dubbele aanhalingsteken) string"

  • 'Letterlijke reeks'

  • @"
    Hier-string
    "@

  • @'
    Letterlijke hier-string
    '@

Opmerkingen

Tekenreeksen zijn objecten die tekst vertegenwoordigen.

Een basistekenreeks maken

Draad

Tekenreeksen worden gemaakt door de tekst tussen dubbele aanhalingstekens te plaatsen. Tekenreeksen met dubbele aanhalingstekens kunnen variabelen en speciale tekens evalueren.

$myString = "Some basic text"
$mySecondString = "String with a $variable"

Als u een dubbel aanhalingsteken binnen een tekenreeks wilt gebruiken, moet u ontsnappen met het escape-teken backtick ( ` ). Enkele aanhalingstekens kunnen worden gebruikt binnen een dubbele aanhalingsteken.

$myString = "A `"double quoted`" string which also has 'single quotes'."

Letterlijke tekenreeks

Letterlijke tekenreeksen zijn tekenreeksen die geen variabelen en speciale tekens evalueren. Het is gemaakt met behulp van enkele aanhalingstekens.

$myLiteralString = 'Simple text including special characters (`n) and a $variable-reference'

Als u enkele aanhalingstekens binnen een letterlijke tekenreeks wilt gebruiken, gebruikt u dubbele enkele aanhalingstekens of een letterlijke hier-tekenreeks. Dubbele qutoes kunnen veilig worden gebruikt in een letterlijke string

$myLiteralString = 'Simple string with ''single quotes'' and "double quotes".'

Tekenreeks opmaken

$hash = @{ city = 'Berlin' }

$result = 'You should really visit {0}' -f $hash.city
Write-Host $result #prints "You should really visit Berlin"

Opmaakstrings kunnen worden gebruikt met de operator -f of de statische [String]::Format(string format, args) .NET-methode.

Multiline string

Er zijn meerdere manieren om een string met meerdere regels in PowerShell te maken:

  • U kunt de speciale tekens voor regelterugloop en / of newline handmatig gebruiken of de variabele NewLine gebruiken om de "newline" -waarde van het systeem in te voegen)

    "Hello`r`nWorld"
    "Hello{0}World" -f [environment]::NewLine
    
  • Maak een linebreak terwijl u een tekenreeks definieert (voordat u citaat sluit)

    "Hello
    World"
    
  • Gebruik een here-string. Dit is de meest voorkomende techniek.

    @"
    Hello
    World
    "@
    

Hier-string

Here-strings zijn erg handig bij het maken van multiline strings. Een van de grootste voordelen in vergelijking met andere tekenreeksen met meerdere regels, is dat u offertes kunt gebruiken zonder te hoeven ontsnappen met een backtick.

Hier-string

Hier-strings beginnen met @" en een linebreak en eindigen met "@ op de eigen regel ( "@ moet de eerste tekens op de regel zijn, niet eens witruimte / tab ).

@"
Simple
    Multiline string 
with "quotes"
"@

Letterlijke hier-string

Je kunt ook een letterlijke here-string maken door enkele aanhalingstekens te gebruiken, als je niet wilt dat uitdrukkingen worden uitgebreid, net als een normale letterlijke string.

@'
The following line won't be expanded
$(Get-Date)
because this is a literal here-string
'@

Tekenreeksen samenvoegen

Variabelen gebruiken in een string

U kunt tekenreeksen samenvoegen met behulp van variabelen binnen een dubbele aanhalingstekenreeks. Dit werkt niet met eigenschappen.

$string1 = "Power"
$string2 = "Shell"
"Greetings from $string1$string2"

Gebruik de operator +

U kunt ook strings samenvoegen met de operator + .

$string1 = "Greetings from"
$string2 = "PowerShell"
$string1 + " " + $string2

Dit werkt ook met eigenschappen van objecten.

"The title of this console is '" + $host.Name + "'"

Subexpressies gebruiken

De uitvoer / het resultaat van een subexpressie $() kan in een string worden gebruikt. Dit is handig bij het openen van eigenschappen van een object of het uitvoeren van een complexe uitdrukking. Subexpressies kunnen meerdere instructies bevatten, gescheiden door puntkomma ;

"Tomorrow is $((Get-Date).AddDays(1).DayOfWeek)"

Speciale tekens

Wanneer het wordt gebruikt in een string met dubbele aanhalingstekens, vertegenwoordigt het escape-teken (backtick ` ) een speciaal teken.

`0    #Null
`a    #Alert/Beep
`b    #Backspace
`f    #Form feed (used for printer output)
`n    #New line
`r    #Carriage return
`t    #Horizontal tab
`v    #Vertical tab (used for printer output)

Voorbeeld:

> "This`tuses`ttab`r`nThis is on a second line"
This    uses    tab
This is on a second line

Je kunt ook ontsnappen aan speciale tekens met speciale betekenissen:

`#    #Comment-operator
`$    #Variable operator
``    #Escape character
`'    #Single quote
`"    #Double quote


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow