Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Większość środowisk terminalowych wyświetla tylko nieprzetworzone tekst. Użytkownicy korzystający z czytników ekranowych mają do czynienia z monotonną narracją podczas przeglądania dużych ilości surowego tekstu, ponieważ surowe dane wyjściowe nie zawierają metadanych ułatwień dostępu, które charakteryzowałyby format zawartości.
Istnieją dwa sposoby poprawy dostępności danych wyjściowych w programie PowerShell:
- Wyprowadź dane w sposób, w jaki można je wyświetlić w innym narzędziu obsługującym technologie odczytu ekranu.
- Zmniejsz ilość danych wyjściowych wyświetlanych w terminalu, filtrując i wybierając żądane dane i wyświetlając tekst w bardziej czytelnym formacie.
Wyświetlanie danych w narzędziu poza terminalem
W przypadku dużych ilości danych, zamiast przesyłać je jako dane wyjściowe do hosta, rozważ zapisanie danych w formacie, który można wyświetlić w innym narzędziu obsługującym technologie odczytu ekranu. Może być konieczne zapisanie danych w pliku w formacie, który można otworzyć w innej aplikacji.
Polecenie Out-GridView w systemie Windows
Dla małego do umiarkowanego rozmiaru wyniku użyj polecenia Out-GridView. Dane wyjściowe są renderowane przy użyciu programu Windows Presentation Foundation (WPF) w formie tabelarycznej, podobnie jak arkusz kalkulacyjny. Kontrolka GridView umożliwia sortowanie, filtrowanie i przeszukiwanie danych, co zmniejsza ilość danych, które należy odczytać. Kontrolka GridView jest również dostępna dla czytników zawartości ekranu.
Narzędzie Narrator wbudowane w system Windows umożliwia odczytywanie szczegółów kontrolki GridView, w tym nazw kolumn i liczby wierszy.
W poniższym przykładzie pokazano, jak wyświetlić listę usług w kontrolce GridView.
Get-Service | Out-GridView
Polecenie Out-GridView jest dostępne tylko w programie PowerShell w systemie Windows.
Format wartości rozdzielanych znakami (CSV)
Aplikacje arkusza kalkulacyjnego, takie jak Microsoft Excel , obsługują pliki CSV. W poniższym przykładzie pokazano, jak zapisać dane wyjściowe polecenia w pliku CSV.
Get-Service | Export-Csv -Path .\myFile.csv
Invoke-Item .\myFile.csv
Polecenie Invoke-Item otwiera plik w domyślnej aplikacji dla plików CSV, który jest zwykle programem Microsoft Excel.
Format języka znaczników hypertext (HTML)
Pliki HTML mogą być wyświetlane przez przeglądarki internetowe, takie jak Microsoft Edge. W poniższym przykładzie pokazano, jak zapisać dane wyjściowe polecenia w pliku HTML.
Get-Service | ConvertTo-Html | Out-File .\myFile.html
Invoke-Item .\myFile.html
Polecenie Invoke-Item otwiera plik w domyślnej przeglądarce internetowej.
Zmniejsz ilość danych wyjściowych
Jednym ze sposobów poprawy dostępności danych wyjściowych jest zmniejszenie ilości danych wyjściowych wyświetlanych w terminalu. Program PowerShell ma kilka poleceń, które mogą ułatwić filtrowanie i wybieranie żądanych danych.
Wybieranie i filtrowanie danych
Zamiast zwracać dużą ilość danych, użyj poleceń, takich jak Select-Object, Sort-Object i Where-Object, aby zmniejszyć ilość danych. Poniższy przykład uzyskuje listę usług na komputerze.
Każde z poniższych poleceń poprawia dane wyjściowe w inny sposób:
- Parametr
-ErrorAction SilentlyContinuepomija komunikaty o błędach, które mogą być generowane, jeśli użytkownik nie ma uprawnień do wyświetlania niektórych usług. - Polecenie
Where-Objectzmniejsza liczbę zwracanych elementów, filtrując listę, aby wyświetlić tylko te usługi, które są uruchomione i mająeventw opisie. - Polecenie
Select-Objectwybiera tylko nazwę usługi i nazwę wyświetlaną. - Polecenie
Format-Listwyświetla dane wyjściowe w formacie listy, co zapewnia lepsze środowisko narracji dla czytników zawartości ekranu.
Get-Service -ErrorAction SilentlyContinue |
Where-Object {$_.Status -eq 'Running' -and $_.Description -match 'event'} |
Select-Object Name, DisplayName |
Format-List
Przeformatuj dane wyjściowe przy użyciu właściwości obliczeniowych
Domyślne nazwy właściwości obiektów platformy .NET generowane przez PowerShell mogą być rozbudowane i mylące. Możesz użyć właściwości obliczeniowych, aby zmienić nazwy właściwości i wartości na coś łatwiejszego do odczytania i zrozumienia przez technologię narratora.
W poniższym przykładzie pokazano, jak uzyskać pięć najważniejszych procesów według użycia pamięci i wyświetlić nazwę procesu i użycie pamięci w megabajtach.
Get-Process |
Sort-Object WorkingSet -Descending |
Select-Object -First 5 -Property ProcessName,
@{n="MemoryMB"; e={'{0:N}' -f ($_.WorkingSet/1Mb)}} |
Format-List
Domyślnie Get-Process wyświetla zestaw roboczy jako liczbę użytych bajtów pamięci. Bez formatowania trudno jest zrozumieć wielkość liczby. Właściwość obliczeniowa konwertuje liczbę bajtów na megabajty i formatuje liczbę przecinkami i ogranicza wartość do dwóch miejsc dziesiętnych.
ProcessName : vmmemWSL
MemoryMB : 1,217.69
ProcessName : Memory Compression
MemoryMB : 780.45
ProcessName : Code
MemoryMB : 726.43
ProcessName : OUTLOOK
MemoryMB : 460.16
ProcessName : msedgewebview2
MemoryMB : 428.94