Udostępnij za pośrednictwem


about_Special_Characters

Krótki opis

Opisuje sekwencje znaków specjalnych, które kontrolują sposób, w jaki program PowerShell interpretuje następne znaki w sekwencji.

Długi opis

Program PowerShell obsługuje zestaw sekwencji znaków specjalnych, które są używane do reprezentowania znaków, które nie są częścią standardowego zestawu znaków. Sekwencje są często znane jako sekwencje ucieczki .

Sekwencje ucieczki zaczynają się od znaku backtick, znanego jako akcent grobowy (ASCII 96) i są uwzględniane wielkość liter. Znak backtick może być również określany jako znak ucieczki .

Sekwencje ucieczki są interpretowane tylko wtedy, gdy znajdują się w ciągach o podwójnym cudzysłowie (").

Program PowerShell rozpoznaje następujące sekwencje ucieczki:

Kolejność Opis
`0 Zero
`a Czujny
`b Backspace
`e Ucieczka (dodana w programie PowerShell 6)
`f Źródło danych formularzy
`n Nowy wiersz
`r Powrót karetki
`t Karta Pozioma
`u{x} Sekwencja ucieczki Unicode (dodana w programie PowerShell 6)
`v Karta pionowa

Program PowerShell ma również specjalny token do oznaczania miejsca, w którym chcesz zatrzymać analizowanie. Wszystkie znaki, które są zgodne z tym tokenem, są używane jako wartości literału, które nie są interpretowane.

Tokeny analizy specjalnej:

Kolejność Opis
-- Traktuj pozostałe wartości jako argumenty, które nie są parametrami
--% Zatrzymaj analizowanie wszystkich elementów, które następują poniżej
~ Tylda

Null ('0)

Znak null (`0) jest wyświetlany jako puste miejsce w danych wyjściowych programu PowerShell. Ta funkcja umożliwia używanie programu PowerShell do odczytywania i przetwarzania plików tekstowych, które używają znaków null, takich jak zakończenie ciągu lub wskaźniki zakończenia rekordu. Znak specjalny o wartości null nie jest odpowiednikiem zmiennej $null, która przechowuje wartość null.

Alert ('a)

Znak alertu (`a) wysyła sygnał sygnału dźwiękowego do głośnika komputera. Możesz użyć tego znaku, aby ostrzec użytkownika o zbliżającej się akcji. W poniższym przykładzie do głośnika komputera lokalnego są wysyłane dwa sygnały sygnału sygnału sygnału sygnału.

for ($i = 0; $i -le 1; $i++){"`a"}

Backspace ('b)

Znak backspace (`b) przenosi kursor z powrotem jeden znak, ale nie usuwa żadnych znaków.

W przykładzie jest zapisywany wyraz kopii zapasowej, a następnie przesuwa kursor z powrotem dwa razy. Następnie w nowej pozycji zapisuje spację, po której następuje słowo się.

"backup`b`b out"
back out

Ucieczka ('e)

Nuta

Ten znak specjalny został dodany w programie PowerShell 6.0.

Znak ucieczki (`e) jest najczęściej używany do określania wirtualnej sekwencji terminalu (sekwencji ucieczki ANSI), która modyfikuje kolor tekstu i innych atrybutów tekstu, takich jak pogrubienie i podkreślenie. Te sekwencje mogą być również używane do pozycjonowania kursora i przewijania. Host programu PowerShell musi obsługiwać sekwencje terminali wirtualnych. Możesz sprawdzić wartość logiczną $Host.UI.SupportsVirtualTerminal, aby określić, czy te sekwencje ANSI są obsługiwane.

Aby uzyskać więcej informacji na temat sekwencji ucieczki ANSI, zobacz artykuł kod ucieczki ANSI w Wikipedii.

Poniższy przykład zwraca tekst z zielonym kolorem pierwszego planu.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

Źródło danych formularzy ('f)

Znak kanału informacyjnego formularza (`f) to instrukcja drukowania, która wysuwa bieżącą stronę i kontynuuje drukowanie na następnej stronie. Znak kanału informacyjnego formularza ma wpływ tylko na drukowane dokumenty. Nie ma to wpływu na dane wyjściowe ekranu.

Nowy wiersz ('n)

Nowy wiersz (`n) znak wstawia podział wiersza bezpośrednio po znaku.

W tym przykładzie pokazano, jak używać nowego znaku wiersza do tworzenia podziałów wierszy w Write-Host polecenia.

"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line

between the words.

Powrót karetki ('r)

Znak powrotu karetki (`r) przenosi kursor wyjściowy na początek bieżącego wiersza i kontynuuje zapisywanie. Wszystkie znaki w bieżącym wierszu są zastępowane.

W tym przykładzie tekst przed zwróceniem karetki zostanie zastąpiony.

Write-Host "These characters are overwritten.`rI want this text instead "

Zwróć uwagę, że tekst przed `r znakiem nie zostanie usunięty, zostanie zastąpiony.

I want this text instead written.

Karta pozioma (nie)

Znak karty poziomej (`t) przechodzi do następnego zatrzymania karty i kontynuuje zapisywanie w tym momencie. Domyślnie konsola programu PowerShell ma zatrzymanie karty co ósmy obszar.

Ten przykład wstawia dwie karty między każdą kolumną.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

Znak Unicode ('u{x})

Nuta

Ten znak specjalny został dodany w programie PowerShell 6.0.

Sekwencja ucieczki Unicode (`u{x}) umożliwia określenie dowolnego znaku Unicode przez reprezentację szesnastkową punktu kodu. Obejmuje to znaki Unicode powyżej podstawowej płaszczyzny wielojęzycznej (>0xFFFF), która zawiera znaki emoji, takie jak kciuki w górę (`u{1F44D}). Sekwencja ucieczki Unicode wymaga co najmniej jednej cyfry szesnastkowej i obsługuje maksymalnie sześć cyfr szesnastkowe. Maksymalna wartość szesnastkowa dla sekwencji jest 10FFFF.

W tym przykładzie zostanie wyświetlona strzałka w dół (↕).

"`u{2195}"

Karta pionowa ('v)

Znak karty pionowej (`v) przechodzi do następnego pionowego zatrzymania karty i zapisuje pozostałe dane wyjściowe w tym momencie. Renderowanie karty pionowej jest zależne od urządzenia i terminalu.

Write-Host "There is a vertical tab`vbetween the words."

W poniższych przykładach pokazano renderowane dane wyjściowe karty pionowej w niektórych typowych środowiskach.

Aplikacja hosta konsoli systemu Windows interpretuje (`v) jako znak specjalny bez dodatkowego odstępu.

There is a vertical tab♂between the words.

Terminal systemu Windows renderuje pionowy znak tabulatora jako znak powrotu karetki i kanału informacyjnego wiersza. Pozostałe dane wyjściowe są drukowane na początku następnego wiersza.

There is a vertical tab
between the words.

Na drukarkach lub w konsoli systemu Unix znak karty pionowej przechodzi do następnego wiersza i zapisuje pozostałe dane wyjściowe w tym momencie.

There is a vertical tab
                       between the words.

Kontynuacja wiersza

Znak backtick może być również używany na końcu wiersza jako sygnał do analizatora programu PowerShell, który polecenie będzie kontynuowane w następnym wierszu. Aby uzyskać więcej informacji, zobacz about_Parsing.

Token końca parametrów (--)

Token końca parametrów (--) wskazuje, że wszystkie argumenty po nim mają zostać przekazane w rzeczywistej formie, tak jakby cudzysłowy zostały umieszczone wokół nich. Na przykład przy użyciu -- można wyświetlić ciąg -InputObject bez użycia cudzysłowów lub interpretowania go jako parametru:

Write-Output -- -InputObject
-InputObject

Jest to konwencja określona w specyfikacji powłoki i narzędzi POSIX.

Token zatrzymania analizowania (--%)

Token stop-parsing (--%) uniemożliwia programowi PowerShell interpretowanie ciągów jako poleceń i wyrażeń programu PowerShell. Dzięki temu te ciągi mogą być przekazywane do innych programów do interpretacji.

Umieść token zatrzymania analizy po nazwie programu i przed argumentami programu, które mogą powodować błędy.

W tym przykładzie polecenie Icacls używa tokenu stop-parsing.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

Program PowerShell wysyła następujący ciąg do Icacls.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

W tym drugim przykładzie przekazujemy zmienną $HOME do polecenia cmd.exe /c echo dwa razy.

cmd.exe /c echo $HOME --% $HOME

Dane wyjściowe pokazują, że pierwsze wystąpienie $HOME jest interpretowane przez program PowerShell, aby wartość zmiennej została przekazana do cmd. Drugie wystąpienie $HOME następuje po tokenie zatrzymania analizowania, dlatego jest przekazywany jako ciąg literału.

C:\Users\username  $HOME

Aby uzyskać więcej informacji na temat tokenu zatrzymania analizowania, zobacz about_Parsing.

Tylda (~)

Znak tyldy (~) ma specjalne znaczenie w programie PowerShell. Gdy jest używany z poleceniami programu PowerShell na początku ścieżki, program PowerShell rozszerza znak tyldy do katalogu macierzystego użytkownika. Jeśli używasz znaku tyldy w dowolnym miejscu w ścieżce, jest on traktowany jako znak literału.

Aby uzyskać więcej informacji na temat tokenu zatrzymania analizowania, zobacz about_Parsing.

Zobacz także