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ą powszechnie 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ż nazywany znakiem ucieczki.

Sekwencje ucieczki są interpretowane tylko wtedy, gdy znajdują się w ciągach dwucytowych (").

Program PowerShell rozpoznaje następujące sekwencje ucieczki:

Sequence Opis
`0 Null
`a Alerty
`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.

Specjalne tokeny analizowania:

Sequence Opis
-- Traktuj pozostałe wartości jako argumenty, a nie parametry
--% Przestań analizować wszystko, co następuje
~ Tylda

Null ('0)

Znak o wartości 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 sygnału dźwiękowego do osoby mówiącej komputera. Możesz użyć tego znaku, aby ostrzec użytkownika o zbliżającej się akcji. Poniższy przykład wysyła dwa sygnały sygnałów sygnału sygnału do głośnika komputera lokalnego.

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.

Przykład zapisuje kopię zapasową wyrazu, a następnie przesuwa kursor z powrotem dwa razy. Następnie w nowej pozycji zapisuje spację, po której następuje słowo .

"backup`b`b out"
back out

Ucieczka ('e)

Uwaga

Ten znak specjalny został dodany w programie PowerShell 6.0.

Znak ucieczki (`e) jest najczęściej używany do określania sekwencji terminalu wirtualnego (sekwencji ucieczki ANSI), która modyfikuje kolor tekstu i innych atrybutów tekstowych, 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ą funkcji $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ł z kodem ucieczki ANSI w Wikipedii.

Poniższy przykład generuje 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 wyrzuci bieżącą stronę i kontynuuje drukowanie na następnej stronie. Znak kanału informacyjnego formularza dotyczy tylko drukowanych dokumentów. Nie ma to wpływu na dane wyjściowe ekranu.

Nowy wiersz (n)

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

W tym przykładzie pokazano, jak za pomocą nowego znaku wiersza utworzyć podziały wierszy w Write-Host poleceniu.

"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 powrotem karetki zostanie zastąpiony.

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

Zwróć uwagę, że tekst przed usunięciem `r znaku jest zastępowany.

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 na każdym ósmym miejscu.

W tym przykładzie wstawia dwie karty między każdą kolumną.

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

Znak Unicode ('u{x})

Uwaga

Ten znak specjalny został dodany w programie PowerShell 6.0.

Sekwencja ucieczki Unicode (`u{x}) umożliwia określenie dowolnego znaku Unicode przez reprezentację szesnastkowa 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 to 10FFFF.

W tym przykładzie jest zwracana strzałka w górę 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 dodanego dodatkowego odstępu.

There is a vertical tab♂between the words.

Terminal Windows renderuje pionowy znak tabulatora jako powrót karetki i kanał informacyjny 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 konsolach opartych na systemie 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 linii

Znak backtick może być również używany na końcu wiersza jako sygnał do analizatora programu PowerShell, że 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 wokół nich umieszczono podwójne cudzysłowy. Na przykład za pomocą -- ciągu 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 POSIX i narzędzi.

Zatrzymanie analizowania tokenu (--%)

Token zatrzymania analizowania (--%) uniemożliwia programowi PowerShell interpretowanie ciągów jako poleceń i wyrażeń programu PowerShell. Umożliwia to przekazywanie tych ciągów do innych programów do interpretacji.

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

W tym przykładzie Icacls polecenie 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ą $HOMEcmd.exe /c echo do polecenia dwa razy.

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

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

C:\Users\username  $HOME

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

Tylda (~)

Znak tyldy (~) ma specjalne znaczenie w programie PowerShell. Gdy jest on 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 zatrzymywania analizowania, zobacz about_Parsing.

Zobacz też