Strona główna
» WINDOWS
»
PowerShell nie przewija w pionie? Napraw przewijanie wstecz
PowerShell nie przewija w pionie? Napraw przewijanie wstecz
Jeśli program PowerShell nie będzie przewijał w pionie, zmień ustawienie przewijania wstecz w aplikacji obsługującej powłokę. W klasycznej konsoli programu Windows PowerShell zwiększ wysokość bufora ekranu. W terminalu systemu Windows zwiększ rozmiar historii profilu. Te ustawienia zachowują wiersze wyjściowe; historia poleceń programu PowerShell nie. Jeśli starsze wiersze zostały już usunięte, uruchom polecenie ponownie lub przechwyć transkrypcję przed ponownym uruchomieniem.
Najpierw zidentyfikuj, co nie jest przewijane
PowerShell wysyła dane wyjściowe do hosta, takiego jak klasyczny host konsoli, terminal Windows, zintegrowany terminal Visual Studio Code lub PowerShell ISE. Host kontroluje liczbę wierszy danych wyjściowych dostępnych powyżej widocznego ekranu. Jeśli polecenie wyświetla mniej wierszy niż mieści się w oknie, nie ma czego przewijać.
Przeprowadź test przy użyciu nieszkodliwego polecenia drukującego 100 wierszy:
1..100 | ForEach-Object { "Line $_" }
Po zakończeniu kliknij w konsoli, naciśnij Esc, aby wyczyścić zaznaczenie tekstu, i wypróbuj kółko myszy lub pasek przewijania. Jeśli możesz poruszać się po wynikach testu, ale starsze wiersze szybko znikają, powiększ poniższe ustawienie przewijania. Jeśli kółko nic nie daje, upewnij się, że właściwy panel terminala jest aktywny i postępuj zgodnie z instrukcjami dla używanej aplikacji.
Napraw klasyczną konsolę Windows PowerShell
Wykonaj poniższe kroki, aby otworzyć oddzielne okno programu Windows PowerShell zamiast karty programu PowerShell w terminalu systemu Windows:
Otwórz program Windows PowerShell i uruchom polecenie testowe powyżej.
Kliknij prawym przyciskiem myszy pasek tytułu okna i wybierz Właściwości .
Otwórz kartę Układ i znajdź Rozmiar bufora ekranu .
Zwiększ wysokość . Na przykład, spróbuj 3000 wierszy, a następnie wybierz OK .
Uruchom test ponownie i przewiń w górę jego wyniki.
Ustawienie wysokości konsoli klasycznej kontroluje liczbę wierszy pozostających nad widocznym oknem.
Wysokość to liczba wierszy przechowywanych w buforze konsoli, a nie widoczna wysokość okna. Większa wartość zapewnia więcej danych wyjściowych do ponownego wyświetlenia. Wybierz wyższą wartość, jeśli polecenia generują więcej danych wyjściowych, a ustawienie na to pozwala. Konsola nie może przywrócić wierszy, które zostały już wypchnięte z bufora. Firma Microsoft opisuje sposób wyświetlania i przewijania bufora ekranu w oknie konsoli w dokumentacji konsoli systemu Windows .
Zwiększ przewijanie w terminalu Windows
Jeśli program PowerShell działa w terminalu systemu Windows, okno dialogowe Właściwości klasycznej konsoli nie jest ustawieniem, którego potrzebujesz. Terminal zachowuje własne przewijanie dla każdego profilu:
Otwórz Ustawienia terminala systemu Windows .
Wybierz profil, którego faktycznie używasz, np. Windows PowerShell , a następnie otwórz Zaawansowane .
Zwiększ rozmiar historii i zapisz ustawienie. Spróbuj 20000 wierszy; w dokumentach Microsoftu domyślnie jest to 9001 , a maksymalnie 32767 .
Rozmiar historii terminala określa liczbę wierszy zachowywanych powyżej bieżącego widoku.
Ta wartość kontroluje liczbę wierszy powyżej bieżącego widoku, które Terminal utrzymuje w stanie dostępnym. Należy ona do wybranego profilu, więc zmień również drugi profil, jeśli przełączasz się między programem Windows PowerShell a programem PowerShell 7. Szczegóły dotyczące bieżącej właściwości można znaleźć w sekcji Zaawansowane ustawienia profilu Terminala systemu Windows firmy Microsoft .
Odczyt długiego wyniku strona po stronie
Stronicowanie jest przydatne, gdy polecenie zwraca wiele wyników i chcesz je odczytać w momencie ich pojawienia się. Nie zmienia to limitu przewijania. Przekaż polecenie do Out-Host -Paging, na przykład:
Get-Process | Out-Host -Paging
Spacja powoduje przejście o jedną stronę do przodu, Enter powoduje przejście o jeden wiersz, a Q powoduje wyjście z trybu stronicowania.
Transkrypt zawiera plik tekstowy do wglądu po zakończeniu długiego polecenia lub po zamknięciu konsoli. Uruchom go przed uruchomieniem polecenia:
Start-Transcript
Transkrypcja rejestruje polecenia i dane wyjściowe konsoli do momentu uruchomienia polecenia Stop-Transcript.
W systemie Windows program PowerShell zapisuje domyślny transkrypt w folderze Dokumenty i podaje ścieżkę do pliku po rozpoczęciu nagrywania. Po zakończeniu uruchom:
Stop-Transcript
Transkrypt zawiera polecenia wpisane i dane wyjściowe wyświetlane w konsoli, dlatego należy traktować go jako zapis zwykłego tekstu, który może zawierać poufne informacje. Przed udostępnieniem pliku należy go przejrzeć. Firma Microsoft dokumentuje domyślną lokalizację i działanie transkryptu w dokumentacji Start-Transcript oraz wyjaśnia, jak zatrzymać nagrywanie za pomocą polecenia Stop-Transcript .
Nie należy mylić przewijania z historią poleceń
Zmiana $MaximumHistoryCountnie powoduje dalszego przewijania danych wyjściowych programu PowerShell. Ta zmienna preferencji ogranicza liczbę poleceń przechowywanych we wbudowanej historii sesji do przywołania za pomocą narzędzi historii; nie zlicza wierszy danych wyjściowych wyświetlanych w terminalu. Program PowerShell ma również osobną historię zarządzaną przez funkcję PSReadLine. Dokumentacja about_History firmy Microsoft wyjaśnia różnicę.
Jeśli nadal nie możesz przewijać, sprawdź, która aplikacja obsługuje powłokę, zastosuj ustawienie przewijania wstecznego tej aplikacji, a następnie uruchom ponownie polecenie, które wygeneruje wystarczającą ilość danych wyjściowych, aby je przetestować. Zwiększ bufor dla przyszłych wierszy; użyj transkryptu, gdy potrzebujesz trwałego zapisu.