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 nazywane sekwencjami 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 podwójnych ("
).
Program PowerShell rozpoznaje następujące sekwencje ucieczki:
Sequence | opis |
---|---|
`0 |
Null (zero) |
`a |
Alerty |
`b |
Backspace |
`f |
Źródło danych formularzy |
`n |
Nowy wiersz |
`r |
Powrót karetki |
`t |
Karta Pozioma |
`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:
Sequence | 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 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. 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.
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 out.
"backup`b`b out"
back out
Ź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 znak wiersza (`n
) wstawia podział wiersza bezpośrednio po znaku.
W tym przykładzie pokazano, jak używać nowego znaku wiersza do tworzenia podziałów wierszy w poleceniu Write-Host
.
"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 usunięciem `r
znaku 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
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 Windows renderuje pionowy znak tabulacji 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 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 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 następujące argumenty mają zostać przekazane w ich rzeczywistej formie, tak jakby cudzysłowy zostały umieszczone wokół nich. Na przykład za pomocą --
polecenia można wyświetlić ciąg -InputObject
bez użycia cudzysłowów lub interpretować go jako parametr:
Write-Output -- -InputObject
-InputObject
Jest to konwencja określona w specyfikacji powłoki i narzędzi POSIX.
Zatrzymaj analizowanie tokenu (--%)
Token zatrzymania analizowania (--%
) 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 Icacls
polecenie używa tokenu zatrzymania analizowania.
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
cmd.exe /c echo
do polecenia dwa razy.
cmd.exe /c echo $HOME --% $HOME
Dane wyjściowe pokazują, że pierwsze wystąpienie $HOME
klasy jest interpretowane przez program PowerShell, aby wartość zmiennej została przekazana do cmd
elementu . Drugie wystąpienie $HOME
jest dostępne po tokenie zatrzymania analizowania, więc jest przekazywane 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.