Znaki specjalne — informacjeAbout Special Characters

Krótki opisShort description

Opisuje sekwencje znaków specjalnych kontrolujące sposób, w jaki program PowerShell interpretuje kolejne znaki w sekwencji.Describes the special character sequences that control how PowerShell interprets the next characters in the sequence.

Długi opisLong description

Program PowerShell obsługuje zestaw specjalnych sekwencji znaków, które są używane do reprezentowania znaków, które nie są częścią standardowego zestawu znaków.PowerShell supports a set of special character sequences that are used to represent characters that aren't part of the standard character set. Sekwencje są często znane jako Sekwencje ucieczki.The sequences are commonly known as escape sequences.

Sekwencje unikowe zaczynają się od znaku cudzysłowu, znanego jako akcent słaby (ASCII 96) i uwzględnia wielkość liter.Escape sequences begin with the backtick character, known as the grave accent (ASCII 96), and are case-sensitive. Znak ucieczki może być również określany jako znak kontrolny.The backtick character can also be referred to as the escape character.

Sekwencje ucieczki są interpretowane tylko wtedy, gdy są zawarte w ciągach podwójnych cudzysłowów ( " ).Escape sequences are only interpreted when contained in double-quoted (") strings.

Program PowerShell rozpoznaje te sekwencje unikowe:PowerShell recognizes these escape sequences:

SequenceSequence OpisDescription
`0 ZeroNull
`a AlertyAlert
`b BackspaceBackspace
`e EscapeEscape
`f Kanał informacyjny formularzaForm feed
`n Nowy wierszNew line
`r Znak powrotu karetkiCarriage return
`t Tabulator poziomyHorizontal tab
`u{x} Sekwencja unikowa UnicodeUnicode escape sequence
`v Tabulator pionowyVertical tab

Program PowerShell ma także specjalny token do oznaczania miejsca, w którym ma zostać zatrzymane analizowanie.PowerShell also has a special token to mark where you want parsing to stop. Wszystkie znaki, które są zgodne z tym tokenem, są używane jako wartości literału, które nie są interpretowane.All characters that follow this token are used as literal values that aren't interpreted.

Specjalny token analizy:Special parsing token:

SequenceSequence OpisDescription
--% Przestań przeanalizować wszystkie poniższe elementyStop parsing anything that follows

Null ("0)Null (`0)

Znak null ( `0 ) pojawia się jako puste miejsce w danych wyjściowych programu PowerShell.The null (`0) character appears as an empty space in PowerShell output. Ta funkcja umożliwia odczytywanie i przetwarzanie plików tekstowych, które używają znaków null, takich jak kończenie ciągów lub wskaźniki zakończenia rekordów, za pomocą programu PowerShell.This functionality allows you to use PowerShell to read and process text files that use null characters, such as string termination or record termination indicators. Znak specjalny o wartości null nie jest odpowiednikiem $null zmiennej, która przechowuje wartość null .The null special character isn't equivalent to the $null variable, which stores a null value.

Alert ("a)Alert (`a)

Znak alertu ( `a ) wysyła sygnał dźwiękowy do głośnika komputera.The alert (`a) character sends a beep signal to the computer's speaker. Możesz użyć tego znaku, aby ostrzec użytkownika o oczekującej akcji.You can use this character to warn a user about an impending action. Poniższy przykład wysyła dwa sygnały sygnału dźwiękowego do głośnika komputera lokalnego.The following example sends two beep signals to the local computer's speaker.

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

Backspace ("b)Backspace (`b)

Znak Backspace ( `b ) przenosi kursor wstecz o jeden znak, ale nie usuwa żadnych znaków.The backspace (`b) character moves the cursor back one character, but it doesn't delete any characters.

Przykład zapisuje kopię zapasową wyrazu, a następnie ponownie przenosi kursor do tyłu.The example writes the word backup and then moves the cursor back twice. Następnie, w nowym miejscu, zapisuje miejsce, po którym następuje wyraz.Then, at the new position, writes a space followed by the word out.

"backup`b`b out"
back out

Escape ("e")Escape (`e)

Znak ucieczki ( `e ) jest najczęściej używany do określenia wirtualnej sekwencji terminala (sekwencja ucieczki ANSI), która modyfikuje kolor tekstu i innych atrybutów tekstu, takich jak pogrubienie i podkreślanie.The escape (`e) character is most commonly used to specify a virtual terminal sequence (ANSI escape sequence) that modifies the color of text and other text attributes such as bolding and underlining. Te sekwencje mogą być również używane do pozycjonowania i przewijania kursora.These sequences can also be used for cursor positioning and scrolling. Host programu PowerShell musi obsługiwać wirtualne sekwencje terminalu.The PowerShell host must support virtual terminal sequences. Możesz sprawdzić wartość logiczną, $Host.UI.SupportsVirtualTerminal Aby określić, czy te sekwencje ANSI są obsługiwane.You can check the boolean value of $Host.UI.SupportsVirtualTerminal to determine if these ANSI sequences are supported.

Aby uzyskać więcej informacji na temat sekwencji unikowych ANSI, zobacz ANSI_escape_code.For more information about ANSI escape sequences, see ANSI_escape_code.

Poniższy przykład wyprowadza tekst z zielonym kolorem pierwszego planu.The following example outputs text with a green foreground color.

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

Kanał informacyjny formularza ("f")Form feed (`f)

Znak wysuwu formularza ( `f ) jest instrukcją drukowania, która wysuwa bieżącą stronę i kontynuuje drukowanie na następnej stronie.The form feed (`f) character is a print instruction that ejects the current page and continues printing on the next page. Znak wysuwu formularza ma wpływ tylko na wydruki dokumentów.The form feed character only affects printed documents. Nie ma to wpływu na dane wyjściowe ekranu.It doesn't affect screen output.

Nowy wiersz ("n")New line (`n)

Nowy znak linii ( `n ) Wstawia podział wiersza bezpośrednio po znaku.The new line (`n) character inserts a line break immediately after the character.

Ten przykład pokazuje, jak używać nowego znaku wiersza do tworzenia podziałów wierszy w Write-Host poleceniu.This example shows how to use the new line character to create line breaks in a Write-Host command.

"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.

Znak powrotu karetki ("r")Carriage return (`r)

Znak powrotu karetki ( `r ) przenosi kursor wyjściowy do początku bieżącego wiersza i kontynuuje zapisywanie.The carriage return (`r) character moves the output cursor to the beginning of the current line and continues writing. Wszystkie znaki w bieżącym wierszu są zastępowane.Any characters on the current line are overwritten.

W tym przykładzie tekst przed znakiem powrotu karetki zostanie nadpisany.In this example, the text before the carriage return is overwritten.

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

Zauważ, że tekst przed `r znakiem nie zostanie usunięty, zostanie nadpisany.Notice that the text before the `r character is not deleted, it is overwritten.

I want this text instead written.

Tabulator poziomy (t)Horizontal tab (`t)

Znak tabulacji poziomej ( `t ) przechodzi do następnego tabulatora i kontynuuje pisanie w tym momencie.The horizontal tab (`t) character advances to the next tab stop and continues writing at that point. Domyślnie konsola programu PowerShell jest przełączana na każdy ósmy znak tabulacji.By default, the PowerShell console has a tab stop at every eighth space.

Ten przykład wstawia dwie karty między kolumnami.This example inserts two tabs between each column.

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

Znak Unicode ("u {x}")Unicode character (`u{x})

Sekwencja unikowa Unicode ( `u{x} ) umożliwia określenie dowolnego znaku Unicode przez szesnastkową reprezentację punktu kodu.The Unicode escape sequence (`u{x}) allows you to specify any Unicode character by the hexadecimal representation of its code point. Obejmuje to znaki Unicode powyżej podstawowej płaszczyzny wielojęzycznej (> 0xFFFF ), która zawiera znaki emoji, takie jak znak kciuka ( `u{1F44D} ).This includes Unicode characters above the Basic Multilingual Plane (> 0xFFFF) which includes emoji characters such as the thumbs up (`u{1F44D}) character. Sekwencja unikowa Unicode wymaga co najmniej jednej cyfry szesnastkowej i obsługuje maksymalnie sześć cyfr szesnastkowych.The Unicode escape sequence requires at least one hexadecimal digit and supports up to six hexadecimal digits. Maksymalna wartość szesnastkowa dla sekwencji to 10FFFF .The maximum hexadecimal value for the sequence is 10FFFF.

Ten przykład wyprowadza symbol Strzałka w dół (↕).This example outputs the up down arrow (↕) symbol.

"`u{2195}"

Tabulator pionowy (' v)Vertical tab (`v)

Znak tabulacji pionowej ( `v ) naliczy się na następną pionową kartę Zatrzymaj i zapisuje pozostałe dane wyjściowe w tym momencie.The vertical tab (`v) character advances to the next vertical tab stop and writes the remaining output at that point. Renderowanie karty pionowej jest zależne od urządzenia i terminalu.The rendering of the the vertical tab is device and terminal dependent.

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.The following examples show the rendered output of the vertical tab in some common environments.

Aplikacja hosta konsoli systemu Windows interpretuje ( `v ) jako znak specjalny bez dodatkowych odstępów.The Windows Console host application interprets (`v) as a special character with no extra spacing added.

There is a vertical tab♂between the words.

Terminal systemu Windows renderuje znak tabulacji pionowej jako powrotu karetki i wysuwu wiersza.The Windows Terminal renders the vertical tab character as a carriage return and line feed. Pozostałe dane wyjściowe są drukowane na początku następnego wiersza.The rest of the output is printed at the beginning of the next line.

There is a vertical tab
between the words.

Na drukarkach lub w konsolach opartych na systemie UNIX znak tabulacji pionowej przechodzi do następnego wiersza i zapisuje pozostałe dane wyjściowe w tym momencie.On printers or in a unix-based consoles, the vertical tab character advances to the next line and writes the remaining output at that point.

There is a vertical tab
                       between the words.

Zatrzymaj analizę tokenu (--%)Stop-parsing token (--%)

Token Stop-analizowanie ( --% ) uniemożliwia programowi PowerShell interpretowanie ciągów jako poleceń i wyrażeń programu PowerShell.The stop-parsing (--%) token prevents PowerShell from interpreting strings as PowerShell commands and expressions. Pozwala to na przekazywanie tych ciągów do innych programów do interpretacji.This allows those strings to be passed to other programs for interpretation.

Umieść token zatrzymania analizy po nazwie programu i przed argumentami programu, które mogą powodować błędy.Place the stop-parsing token after the program name and before program arguments that might cause errors.

W tym przykładzie Icacls polecenie używa tokenu zatrzymania analizy.In this example, the Icacls command uses the stop-parsing token.

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

Program PowerShell wysyła następujący ciąg do Icacls .PowerShell sends the following string to Icacls.

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

Oto inny przykład.Here is another example. Funkcja showArgs wyprowadza wartości przesłane do niego.The showArgs function outputs the values passed to it. W tym przykładzie przekazująmy zmienną o nazwie $HOME do funkcji dwa razy.In this example, we pass the variable named $HOME to the function twice.

function showArgs {
  "`$args = " + ($args -join '|')
}

showArgs $HOME --% $HOME

W danych wyjściowych można zobaczyć, że dla pierwszego parametru zmienna $HOME jest interpretowana przez program PowerShell, tak aby wartość zmiennej była przenoszona do funkcji. Drugie użycie $HOME pochodzi od tokenu zatrzymania analizowania, więc ciąg "$Home" jest przesyłany do funkcji bez interpretacji.The second use of $HOME comes after the stop-parsing token, so the string "$HOME" is passed to the function without interpretation.

$args = C:\Users\username|--%|$HOME

Aby uzyskać więcej informacji na temat tokenu zatrzymania analizowania, zobacz about_Parsing.For more information about the stop-parsing token, see about_Parsing.

Zobacz teżSee also

about_Quoting_Rulesabout_Quoting_Rules