Sök…


Syntax

  • "(Dubbelciterat) String"

  • "Bokstavssträng"

  • @"
    Här-string
    "@

  • @'
    Bokstavligen här-sträng
    '@

Anmärkningar

Strängar är objekt som representerar text.

Skapa en grundläggande sträng

Sträng

Strängar skapas genom att lägga in texten med dubbla citat. Dubbelciterade strängar kan utvärdera variabler och specialtecken.

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

För att använda ett dubbelt citat inuti en sträng måste det rymmas med escape-karaktären, backtick ( ` ). Enstaka citat kan användas i en dubbelciterad sträng.

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

Bokstavssträng

Bokstavliga strängar är strängar som inte utvärderar variabler och specialtecken. Det skapas med enstaka citat.

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

Om du vill använda enstaka citat i en bokstavlig sträng använder du dubbla enkla citat eller en bokstavlig här-sträng. Dubbla qutoes kan användas säkert i en bokstavlig sträng

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

Formatera sträng

$hash = @{ city = 'Berlin' }

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

Formatsträngar kan användas med -f operatören eller den statiska [String]::Format(string format, args) .NET-metoden.

Multiline string

Det finns flera sätt att skapa en multiline-sträng i PowerShell:

  • Du kan använda specialtecknen för retur och / eller ny linje manuellt eller använda variabeln NewLine miljö för att sätta in systemets "newline" -värde)

    "Hello`r`nWorld"
    "Hello{0}World" -f [environment]::NewLine
    
  • Skapa en linebreak medan du definierar en sträng (innan du stänger offert)

    "Hello
    World"
    
  • Med hjälp av en här-sträng. Detta är den vanligaste tekniken.

    @"
    Hello
    World
    "@
    

Här-string

Här-strängar är mycket användbara när du skapar multiline strängar. En av de största fördelarna jämfört med andra multiline strängar är att du kan använda offert utan att behöva undkomma dem med en backtick.

Här-string

Här-strängar börjar med @" och ett linbrott och slutar med "@ på sin egen rad ( "@ måste vara första tecken på linjen, inte ens med blanksteg / flik ).

@"
Simple
    Multiline string 
with "quotes"
"@

Bokstavligen här-sträng

Du kan också skapa en bokstavlig här-sträng med hjälp av enstaka citat när du inte vill att några uttryck ska utvidgas precis som en vanlig bokstavsträng.

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

Slå samman strängar

Använda variabler i en sträng

Du kan sammanfoga strängar med variabler i en dubbelciterad sträng. Detta fungerar inte med egenskaper.

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

Använda + operatören

Du kan också gå med strängar med hjälp av + -operatören.

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

Detta fungerar också med egenskaper hos objekt.

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

Med subexpressions

Utgången / resultatet av subexpressions $() kan användas i en sträng. Detta är användbart när du får åtkomst till objekt av objekt eller utför ett komplext uttryck. Subexpressions kan innehålla flera uttalanden separerade med semikolon ;

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

Speciella karaktärer

När den används i en dubbelciterad sträng, återkommar flykteckenet (backtick ` ) ett specialtecken.

`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)

Exempel:

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

Du kan också undgå specialtecken med speciella betydelser:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow