Szukaj…


Składnia

  • „Ciąg (cytowany)”

  • „Dosłowny ciąg”

  • @ ”
    Tutaj ciąg
    „@

  • @ ”
    Dosłowny ciąg tutaj
    „@

Uwagi

Ciągi to obiekty reprezentujące tekst.

Tworzenie podstawowego ciągu

Strunowy

Ciągi są tworzone przez zawijanie tekstu podwójnymi cudzysłowami. Ciągi podwójnie cytowane mogą analizować zmienne i znaki specjalne.

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

Aby użyć podwójnego cudzysłowu w ciągu, należy go uciec za pomocą znaku zmiany znaczenia, backtick ( ` ). Pojedyncze cudzysłowy mogą być używane wewnątrz ciągu podwójnego cudzysłowu.

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

Dosłowny ciąg

Ciągi literalne to ciągi, które nie oceniają zmiennych i znaków specjalnych. Jest tworzony przy użyciu pojedynczych cudzysłowów.

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

Aby użyć pojedynczych cudzysłowów w literałowym łańcuchu, użyj podwójnych pojedynczych cudzysłowów lub literałowego łańcucha tutaj. Podwójnych qutoes można bezpiecznie używać w dosłownym ciągu

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

Formatuj ciąg

$hash = @{ city = 'Berlin' }

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

Ciągów formatujących można używać z operatorem -f lub metodą statyczną [String]::Format(string format, args) .NET.

Ciąg wielowierszowy

Istnieje wiele sposobów tworzenia ciągu wielowierszowego w programie PowerShell:

  • Możesz użyć znaków specjalnych do powrotu karetki i / lub nowej linii ręcznie lub użyć zmiennej środowiskowej NewLine aby wstawić wartość systemową „nowej linii”)

    "Hello`r`nWorld"
    "Hello{0}World" -f [environment]::NewLine
    
  • Utwórz podział linii podczas definiowania łańcucha (przed zamknięciem cytatu)

    "Hello
    World"
    
  • Za pomocą ciągu tutaj. Jest to najczęstsza technika.

    @"
    Hello
    World
    "@
    

Tutaj ciąg

Ciągi tutaj są bardzo przydatne podczas tworzenia ciągów wielowierszowych. Jedną z największych korzyści w porównaniu z innymi ciągami wielowierszowymi jest to, że możesz używać cudzysłowów bez konieczności ucieczki przed nimi za pomocą backsticka.

Tutaj ciąg

Ciągi znaków zaczynają się od @" i łamią linię, a kończą na "@ w swojej linii ( "@ muszą być pierwszymi znakami w linii, nawet białymi spacjami / tabulatorami ).

@"
Simple
    Multiline string 
with "quotes"
"@

Dosłowny ciąg tutaj

Możesz także utworzyć literalny ciąg tutaj, używając pojedynczych cudzysłowów, gdy nie chcesz, aby wyrażenia były rozwijane tak jak zwykły ciąg literalny.

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

Łańcuchy łączące

Używanie zmiennych w ciągu

Ciągi znaków można łączyć za pomocą zmiennych wewnątrz ciągu podwójnego cudzysłowu. To nie działa z właściwościami.

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

Korzystanie z operatora +

Możesz także łączyć łańcuchy za pomocą operatora + .

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

Działa to również z właściwościami obiektów.

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

Korzystanie z podwyrażeń

Dane wyjściowe / wynik podwyrażeń $() mogą być użyte w ciągu. Jest to przydatne podczas uzyskiwania dostępu do właściwości obiektu lub wykonywania złożonego wyrażenia. Podwyrażenia mogą zawierać wiele instrukcji oddzielonych średnikiem ;

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

Znaki specjalne

W przypadku użycia w cudzysłowie ciąg znaków ucieczki (backtick ` ) reprezentuje znak specjalny.

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

Przykład:

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

Możesz także uciec od znaków specjalnych o specjalnych znaczeniach:

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow